【问题标题】:What is the Python equivalent of Tomcat?Tomcat 的 Python 等价物是什么?
【发布时间】:2011-09-03 15:55:58
【问题描述】:

这个问题可能暴露了一个误解,但我很好奇 Python 世界的“Tomcat”是什么。

我所有的 Web 编程经验都是用 Java(或 Groovy)编写的,所以我用 Java 术语来思考。当我想到制作一个基本的 web 应用程序时,我会想到编写一些 servlet,构建一个 WAR 文件,然后将其部署到 Tomcat 或其他 servlet 容器中。

在 Python 中,假设我编写了一些能够响应 HTTP 请求的代码,我会用它来做什么?我将如何部署它?

具体来说:Python中最常用的容器是什么?是否有 WAR 文件的等价物,一种将 Web 应用程序标准打包到一个文件中,可在各种容器中运行的文件?

【问题讨论】:

  • Python 有很多 Web 框架。尝试搜索“Python Web 框架”以获取它们的列表。你还想知道什么?只是列表?
  • 我不是在寻找框架,我想了解如何在没有框架的情况下制作 Python Web 应用程序。我比较的是 Servlet 和 Tomcat,而不是 Spring 或 Struts。
  • @FarmBoy:“Servlets 和 Tomcat”实际上是 Web 框架的一部分。对不起,但这仍然是框架。要摆脱框架,您必须编写套接字或 CGI 脚本。仍然有几十个 Python 框架或多或少等同于 Tomcat。请搜索并阅读结果。您想具体了解什么
  • @FarmBoy:“没有区别吗?”不。而且没有“规范”容器。我试图尽可能清楚地说明这一点。 Python 有许多 Web 框架。许多。你想知道什么?你要名单吗?这是一个糟糕的问题。你想让我做什么?你想要什么信息?请澄清你想做什么。
  • 我希望我能对 cme​​ts 投反对票。 @S.Lott,您在这里对 FarmBoy 的诚实问题没有帮助。是的,有一点不同:正如 ThiefMaster 所指出的,Tomcat 等同于 WSGI 服务器,而不是框架。

标签: java python tomcat deployment


【解决方案1】:

有许多可用于 python 的网络服务器。一些像 CherryPy 这样的网络服务器是用 Python 本身编写的。答案中最酷的部分是 tomcat 服务器本身支持基于 Python 的应用程序。

欲了解更多详情,请访问此网站:https://wiki.python.org/moin/WebServers

【讨论】:

  • 只能通过 Jython 使用 Tomcat,不能用于任意 Python Web 应用程序。
【解决方案2】:

有不同的方法有一个共同点:它们通常通过 WSGI 与它们的“容器”(在它们转到 Python 代码之前接收 HTTP 请求的服务器)进行通信。

有各种容器:

  • wsgiref - 一个非常简单的参考实现,在开发过程中非常有用
  • 带有 mod_wsgi 的 Apache
  • 大多数其他带有添加 WSGI 支持的模块的 Web 服务器
  • many more

【讨论】:

  • 这是最接近 Python 世界中 J2EE 规范的 Servlet API 部分的东西。
  • 只是为了补充这个答案,如果您正在寻找一个全面的 应用程序服务器(如 jboss/websphere),而不仅仅是一个容器(如 Tomcat),那么唯一我能想到的一个是Zope
【解决方案3】:

也许 'uwsgi' 会有所帮助。这是链接:http://projects.unbit.it/uwsgi/

【讨论】:

    【解决方案4】:

    当我想到制作一个基本的 web 应用程序时,我会想到编写一些 servlet,构建一个 WAR 文件,并将其部署在 Tomcat 或其他 servlet 容器中。

    这很好,但无关紧要。这只是一种 Java 主义,在 Java 之外并没有广泛应用。

    在 Python 中,假设我编写了一些能够响应 HTTP 请求的代码,我会用它来做什么?我将如何部署它?

    这取决于。

    Python中最常用的容器是什么?

    没有。

    是否有 WAR 文件的等价物,一种将 Web 应用程序标准打包到一个文件中,可在各种容器中运行的文件?

    没有。


    HTTP 是一种对请求产生响应的协议。而已。这真的是一件非常小的事情。

    您有可以响应请求的 CGI 脚本。 Python cgi 库可以做到这一点。 http://docs.python.org/library/cgi.html.

    这是相对低效的,因为简单的 CGI 规则是“为每个请求启动一个新进程”。如果脚本允许提升权限或计划不当的上传,也可能是不安全的。

    您拥有将 Apache 连接到 Python 的 mod_wsgi 框架。这可以像 CGI 一样运行,或者它可以在命名管道的末尾运行一个专用的 Python“守护程序”。

    WSGI 标准定义了一种非常方便且可扩展的请求和响应处理格式。大多数框架——以某种方式——都与 WSGI 兼容。

    最后还有更完整的框架,包括请求和响应的类定义、URL解析、Authentication、Authorization等等。

    这是一个列表:http://wiki.python.org/moin/WebFrameworks

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2011-03-07
      • 1970-01-01
      • 2021-06-19
      • 2013-10-18
      • 2019-04-02
      • 2012-03-20
      • 1970-01-01
      • 2017-04-10
      相关资源
      最近更新 更多