我已经使用 python 很多年了,但是对于 pythonweb 编程我几乎没有什么经验。我想创建一个非常简单的 Web 服务,它公开了一些现有 python 脚本的功能,以便在我的公司中使用。它可能会返回 csv 中的结果。怎样才能最快地把东西弄起来?如果它影响您的建议,我可能会添加更多的功能,以后的道路。
如果你有一个好的 Web 框架,生活就会变得简单。姜戈中的 Web 服务很简单。定义模型,编写返回 CSV 文档的视图函数。跳过模板。
在线获得 Python 脚本的最简单方法是使用 CGI:
#!/usr/bin/python print "Content-type: text/html" print print "<p>Hello world.</p>"
把这段代码放在一个脚本中,这个脚本位于你的 web 服务器 CGI 目录中,让它可执行,然后运行它。当您需要接受来自用户的参数时,cgi模块有许多有用的实用工具。
cgi
Py 可能是最简单的 web 框架。“裸”的 CGI 更简单,但是在创建一个实际执行某些操作的服务时,您完全依靠自己。
“你好,世界!”根据 web.py 的说法,它并不比一个纯 CGI 版本长多少,但是它添加了 URL 映射、 HTTP 命令区分和查询参数解析 免费的:
import web urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals()) class hello: def GET(self, name): if not name: name = 'world' return 'Hello, ' + name + '!' if __name__ == "__main__": app.run()
原始的 CGI 是一种痛苦,姜戈是一种重量级。有许多更简单、更轻量级的框架,例如 樱桃。值得四处看看。
看看 沃克泽格。Werkzeug 最初只是 WSGI 应用程序的各种实用程序的简单集合,现在已经成为最先进的 WSGI 实用程序模块之一。它包括一个强大的调试器,全功能的请求和响应对象,HTTP 实用程序来处理实体标签,缓存控制头,HTTP 日期,cookie 处理,文件上传,一个强大的 URL 路由系统和一堆社区贡献的插件模块。
它包含许多很酷的工具来处理 http,它的优点是可以在不同的环境(cgi、 fcgi、 apache/mod _ wsgi 或一个简单的 Python 服务器进行调试)中使用 wsgi。
如果您指的是 SOAP/WSDL 意义上的“ Web 服务”,那么您可能需要查看 使用 Python 和 SOAPpy 生成 WSDL
也许是扭曲 Http://twistedmatrix.com/trac/
看看 WSGI 参考实现,在 Python 库中已经有了它,它非常简单。
如果你的意思是“网络服务”的东西访问其他程序 SimpleXMLRPCServer可能是正确的。自从2.2版本以来,每次安装 Python 时都会包含它。
对于简单的人类可访问的东西,我通常使用 Python SimpleHTTPServer,它也随着每次安装。显然,您也可以通过客户端程序访问 SimpleHTTPServer。