创建简单的python Web服务的最佳方法

时间:2009-01-06 02:17:54

标签: python web-services

我已经使用python多年了,但我对python web编程几乎没有经验。我想创建一个非常简单的Web服务,它从现有的python脚本中公开一些功能,以便在我公司内部使用。它可能会在csv中返回结果。什么是最快捷的方式?如果它影响了您的建议,我可能会在此过程中为此添加更多功能。

9 个答案:

答案 0 :(得分:55)

看看werkzeug。 Werkzeug最初是作为WSGI应用程序的各种实用程序的简单集合开始的,并且已经成为最先进的WSGI实用程序模块之一。它包括一个功能强大的调试器,全功能请求和响应对象,处理实体标签的HTTP实用程序,缓存控制头,HTTP日期,cookie处理,文件上传,强大的URL路由系统和一堆社区贡献的插件模块。

它包含许多很酷的工具来处理http,并且具有可以在不同环境中使用wsgi(cgi,fcgi,apache / mod_wsgi或使用简单的python服务器进行调试)的优点。

答案 1 :(得分:26)

web.py可能是最简单的网络框架。 “裸”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()

答案 2 :(得分:16)

在线获取Python脚本的最简单方法是使用CGI:

#!/usr/bin/python

print "Content-type: text/html"
print

print "<p>Hello world.</p>"

将该代码放在您的Web服务器CGI目录中的脚本中,使其可执行并运行它。当您需要接受来自用户的参数时,cgi模块有许多有用的实用程序。

答案 3 :(得分:12)

原始CGI是一种痛苦,Django是一种重量级的。有许多更简单,更轻的框架,例如: CherryPy。值得一看。

答案 4 :(得分:9)

查看WSGI reference implementation。您已经在Python库中拥有它了。这很简单。

答案 5 :(得分:4)

如果您的意思是“Web服务”,其他程序SimpleXMLRPCServer访问的内容可能适合您。它包含在自2.2版以来的每个Python安装中。

对于简单的人类可访问的东西,我通常使用Pythons SimpleHTTPServer,它也随每次安装一起提供。显然,您也可以通过客户端程序访问SimpleHTTPServer。

答案 6 :(得分:2)

如果你有一个好的网络框架,生活很简单。 Django中的Web服务很简单。定义模型,编写返回CSV文档的视图函数。跳过模板。

答案 7 :(得分:2)

如果您的意思是SOAP / WSDL意义上的“Web服务”,您可能希望查看 Generating a WSDL using Python and SOAPpy

答案 8 :(得分:1)

也许是扭曲的 http://twistedmatrix.com/trac/