最好的方法来创build一个简单的Python Web服务
我一直在使用python多年,但是我对python web编程有一点经验。 我想创build一个非常简单的Web服务,公开现有的Python脚本中的一些function用于我的公司内部。 它可能会在csv中返回结果。 什么是最快捷的方法来获取? 如果它影响到你的build议,我可能会在下面添加更多的function。
看看werkzeug 。 Werkzeug开始作为WSGI应用程序的各种实用程序的简单集合,并已成为最先进的WSGI实用程序模块之一。 它包括一个function强大的debugging器,全function的请求和响应对象,HTTP实用程序来处理实体标签,caching控制头,HTTPdate,cookie处理,file upload,强大的URL路由系统和一堆社区贡献的插件模块。
它包含许多用于使用http的酷工具,并且具有可以在不同环境(cgi,fcgi,apache / mod_wsgi或简单的python服务器进行debugging)中使用wsgi的优势。
web.py可能是最简单的web框架。 “光秃秃的”CGI更简单,但是当你提出一个真正做某事的服务时,你完全靠自己。
“你好,世界!” 根据web.py是不是一个纯粹的CGI版本,但它增加了URL映射,HTTP命令的区别,以及免费的查询参数parsing:
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()
在线获取Python脚本最简单的方法是使用CGI:
#!/usr/bin/python print "Content-type: text/html" print print "<p>Hello world.</p>"
把这段代码放在一个存放在你的web服务器CGI目录下的脚本中,使它可执行,然后运行它。 当你需要接受来自用户的参数时, cgi
模块有许多有用的工具。
原始CGI是一种痛苦,Django是一种重量级。 有一些更简单,更轻的框架,例如CherryPy 。 这是值得环顾一下。
看看WSGI参考实现 。 您已经在Python库中拥有它了。 这很简单。
如果你的意思是“Web服务”,其他程序访问的东西SimpleXMLRPCServer可能适合你。 它包含在从版本2.2开始的每一个Python安装中。
对于简单的人类访问的东西,我通常使用Pythons SimpleHTTPServer ,它也随每个安装。 显然你也可以通过客户端程序访问SimpleHTTPServer。
如果你有一个好的networking框架,生活是很简单的。 Django中的Web服务很容易。 定义你的模型,编写返回你的CSV文档的视图函数。 跳过模板。
如果您的意思是SOAP / WSDL意义上的“Web服务”,您可能需要查看使用Python和SOAPpy生成WSDL