【问题标题】:Python web server?Python网络服务器?
【发布时间】:2009-12-30 06:56:19
【问题描述】:

我想使用 python 为我的项目开发一个工具。要求是:

  1. 嵌入web服务器,让用户获取一些静态文件,但流量不是很高。
  2. 用户可以使用http配置工具,我不需要GUI页面,我只需要一个RPC接口,比如XML-RPC?还是其他人?
  3. 除了 Web 服务器之外,该工具还需要一些后台工作来完成,因此这些工作需要通过 Web 服务器来完成。

那么,哪个 Python Web 服务器是最佳选择?我在看CherryPy,如果你有其他推荐,请写在这里。

【问题讨论】:

    标签: python cherrypy


    【解决方案1】:

    内部 python 网络服务器呢? 只需在 google 中输入“python web server”,然后托管第一个结果...

    【讨论】:

    • XML-RPC 怎么样?我可以将内部 Web 服务器用于 XML-RPC 和同一端口的静态文件吗?
    • 据我所知没有。有趣的是,我做过这样一个项目,只是实例化了 2 个服务器,一个用于 http,另一个用于 XML/RPC
    【解决方案2】:

    嗯,我使用了 TurboGears 等 Web 框架,我目前的项目基于 Pylons。最后一个相当容易学习,并且都带有 CherryPy。

    要做一些后台工作,你也可以在 pylons 中实现它。

    只需转到您的 config/environment.py 并查看该示例: (我这里实现了一个队列)

    from faxserver.lib.myQueue import start_queue
    ...
    def load_environment(global_conf, app_conf):
        ...
        start_queue()
    

    这取决于你是简单地使用 CherryPy 还是开始使用像 Pylons 这样更完整的东西。

    【讨论】:

      【解决方案3】:

      使用 Python 已经提供的 WSGI 参考实现wsgiref

      使用带有 JSON 的 REST 协议(不是 XML-RPC)。它比 XML 更简单、更快捷。

      后台作业以subprocess 开始。

      【讨论】:

      • 谢谢,我会检查wsgiref,对于后台工作,我不是指外部进程,它只是定期检查电子邮件,所以我不需要子进程。跨度>
      【解决方案4】:

      为什么不使用像 Cruise 这样的开源构建工具(持续集成工具)。它们中的大多数都带有 Web 服务器/xml 界面,有时还带有精美的报告。

      【讨论】:

      • 仍然支持 Ritesh 的建议,并请您考虑使用 CruiseControl 或 BuildBot(如果您更喜欢 Python)并对其进行扩展,而不是从头开始构建。我做过一次,我可以告诉你它很快就会失控。
      • 好的,我编辑了我的问题,只是一个关于 python web 服务器的一般问题。 ;)
      【解决方案5】:

      这听起来是一个有趣的项目。那么,为什么不编写自己的 HTTP 服务器呢?毕竟它并不复杂,HTTP 是一个众所周知且易于实现的协议,您将获得很多新知识!

      查看socket()bind()listen()accept() 等的文档或手册页(无论您喜欢什么)。

      【讨论】:

      • 真的吗?如果已经有多个好的解决方案,您认为最好从头开始重新实施?
      • 我从来没有说过也没有写过,我的建议是“最好的”。 ...而且我也不认为从头开始重新实现 Web 服务器是“最好的”。我写的就像我的意思一样,不多也不少。接受它。
      猜你喜欢
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多