这个问题很可能背叛了一个误解,但我很好奇Python世界的“Tomcat”是什么。
我的所有Web编程经验都是Java(或Groovy),所以我认为用Java术语来说。当我想要创建一个基本的Web应用程序时,我想到编写一些servlet,构建一个WAR文件,并将它部署在Tomcat或另一个servlet容器中。
在Python中,假设我编写了一些能够响应HTTP请求的代码,我该怎么办呢?我该如何部署它?
具体来说:Python中最常用的容器是什么?是否有一个等效的WAR文件,一个web-app的标准包装到一个可以在各种容器中工作的文件中?
答案 0 :(得分:30)
有不同的方法有一个共同点:它们通常通过WSGI与它们的“容器”(服务器在转到Python代码之前接收HTTP请求)进行通信。
有各种容器:
答案 1 :(得分:6)
当我想要创建一个基本的Web应用程序时,我想到编写一些servlet,构建一个WAR文件,并将它部署在Tomcat或其他servlet容器中。
这很好,但无关紧要。这只是一个Java主义,并不适用于Java之外的广泛应用。
在Python中,假设我编写了一些能够响应HTTP请求的代码,我该怎么办呢?我该如何部署它?
这取决于。
Python中最常用的容器是什么?
没有一个。
是否有一个等效的WAR文件,一个web-app的标准包装到一个可以在各种容器中运行的文件中?
没有一个。
HTTP是用于生成对请求的响应的协议。而已。这真是一件非常小的事情。
您有可以响应请求的CGI脚本。 Python cgi
库可以做到这一点。 http://docs.python.org/library/cgi.html
这是相对低效的,因为简单的CGI规则是“为每个请求启动新进程”。如果脚本允许提升权限或严格计划的上传,也可能不安全。
你有mod_wsgi
框架将Apache连接到Python。这可以像CGI一样,或者它可以在命名管道的末尾运行一个专用的Python“守护进程”。
WSGI标准为请求和响应处理定义了一种非常方便且非常易于扩展的格式。大多数框架 - 以某种方式 - 与WSGI兼容。
最后,还有更完整的框架,包括请求和响应的类定义,URL解析,身份验证,授权等等。
答案 2 :(得分:2)
也许'uwsgi'会有所帮助。这是链接:http://projects.unbit.it/uwsgi/
答案 3 :(得分:0)
有许多可用于python的Web服务器。像CherryPy这样的一些Web服务器是用Python编写的。答案中最酷的部分是tomcat服务器本身支持基于Python的应用程序。
有关详细信息,请访问以下网站:https://wiki.python.org/moin/WebServers