你能推荐一个我可以嵌入到我的桌面应用程序中的简约 python 网络服务器吗?
7 回答
我正在成为新发布的电路库的忠实粉丝。它是一个组件/事件框架,带有一组非常好的用于创建 Web 服务器和应用程序的包。这是该站点的简单 Web 示例:
from circuits.lib.web import Server, Controller
class HelloWorld(Controller):
def index(self):
return "Hello World!"
server = Server(8000)
server += HelloWorld()
server.run()
它的 WSGI 支持也不比这更复杂。好东西。
如果你正在做很多并发的事情,你可能会考虑Kamaelia的HTTPServer。
我发现 web.py 很容易使用:http ://webpy.org/
如果您想使用标准库中的某些内容,我强烈建议您不要使用 SimpleHTTPServer,而是使用wsgiref.simple_server
. SimpleHTTPServer 是一种笨拙且相当荒谬的方式来实现 Web 应用程序,虽然原始 WSGI 不是非常容易(但肯定是可能的),但您可以选择在它之上使用任何基于 WSGI 的框架。此外,如果您使用 wsgiref,您稍后可以选择更改为像 CherryPy 这样的服务器(请注意,CherryPy 中的服务器可以与框架的其余部分分开使用,您只需要一个文件用于服务器)。对于“真正的”Web 应用程序,CherryPy 比 wsgiref 有几个优点,但对于本地托管的应用程序,它们中的任何一个都不太重要。
如果您正在制作桌面应用程序,您将需要为 wsgiref 或 CherryPy 启动一个单独的线程。如果没问题,那么基于 WSGI 的服务器可能是最简单的。如果您不想为服务器启动单独的线程,那么您很可能需要使用 Twisted。
请参阅WSGI 参考实现。