What is the Python equivalent of Tomcat?

后端 未结 4 1819
花落未央
花落未央 2021-01-31 14:24

This question likely betrays a misconception, but I\'m curious what the \"Tomcat\" of the Python world is.

All of my web programming experience is in Java (or Groovy) so

4条回答
  •  [愿得一人]
    2021-01-31 15:19

    when I think of making a basic web-app, I think of writing some servlets, building a WAR file, and deploying it in Tomcat or another servlet container.

    That's nice, but irrelevant. That's just a Java-ism, and doesn't apply very widely outside Java.

    In Python, suppose I wrote some code that was capable of responding to HTTP requests, what would I do with it? How would I deploy it?

    That depends.

    What is the most commonly used container in Python?

    There isn't one.

    And is there an equivalent of a WAR file, a standard packaging of a web-app into one file that works in the various containers?

    There isn't one.


    HTTP is a protocol for producing a response to a request. That's it. It's really a very small thing.

    You have CGI scripts which can respond to a request. The Python cgi library can do that. http://docs.python.org/library/cgi.html.

    This is relatively inefficient because the simple CGI rule is "fire off a new process for each request." It can also be insecure if the script allows elevated privileges or badly planned-out uploads.

    You have the mod_wsgi framework to connect Apache to Python. This can behave like CGI, or it can have a dedicated Python "daemon" running at the end of a named pipe.

    The WSGI standard defines a format for request and response processing that's very handy and very extensible. Most of the frameworks -- in one way or another -- are WSGI compatible.

    Finally, there are more complete frameworks that include class definitions for requests and responses, URL parsing, Authentication, Authorization, etc., etc.

    Here's a list: http://wiki.python.org/moin/WebFrameworks

提交回复
热议问题