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

我已经使用 python 很多年了,但是对于 pythonweb 编程我几乎没有什么经验。我想创建一个非常简单的 Web 服务,它公开了一些现有 python 脚本的功能,以便在我的公司中使用。它可能会返回 csv 中的结果。怎样才能最快地把东西弄起来?如果它影响您的建议,我可能会添加更多的功能,以后的道路。

203851 次浏览

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

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

#!/usr/bin/python


print "Content-type: text/html"
print


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

把这段代码放在一个脚本中,这个脚本位于你的 web 服务器 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

看看 WSGI 参考实现,在 Python 库中已经有了它,它非常简单。

如果你的意思是“网络服务”的东西访问其他程序 SimpleXMLRPCServer可能是正确的。自从2.2版本以来,每次安装 Python 时都会包含它。

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