java - pagina - ¿Cuál es el equivalente Python de Tomcat?
servlet java ejemplo (4)
Esta pregunta probablemente delata una idea errónea, pero tengo curiosidad por saber cuál es el "Tomcat" del mundo de Python.
Toda mi experiencia de programación web está en Java (o Groovy), así que creo en términos de Java. Y cuando pienso en crear una aplicación web básica, pienso en escribir algunos servlets, compilar un archivo WAR e implementarlo en Tomcat u otro contenedor de servlets.
En Python, supongamos que escribí algún código que fuera capaz de responder a las solicitudes HTTP, ¿qué haría con él? ¿Cómo lo implementaría?
Específicamente: ¿Cuál es el contenedor más comúnmente utilizado en Python? ¿Y hay un equivalente de un archivo WAR, un paquete estándar de una aplicación web en un archivo que funciona en varios contenedores?
cuando pienso en crear una aplicación web básica, pienso en escribir algunos servlets, compilar un archivo WAR e implementarlo en Tomcat u otro contenedor de servlets.
Eso es bueno, pero irrelevante. Eso es solo un Java-ismo, y no se aplica mucho fuera de Java.
En Python, supongamos que escribí algún código que fuera capaz de responder a las solicitudes HTTP, ¿qué haría con él? ¿Cómo lo implementaría?
Eso depende.
¿Cuál es el contenedor más comúnmente utilizado en Python?
No hay uno.
¿Y hay un equivalente de un archivo WAR, un paquete estándar de una aplicación web en un archivo que funciona en varios contenedores?
No hay uno.
HTTP es un protocolo para producir una respuesta a una solicitud. Eso es. Es realmente una cosa muy pequeña.
Tienes scripts CGI que pueden responder a una solicitud. La biblioteca Python cgi
puede hacer eso. http://docs.python.org/library/cgi.html .
Esto es relativamente ineficiente porque la simple regla CGI es "disparar un nuevo proceso para cada solicitud". También puede ser inseguro si la secuencia de comandos permite privilegios elevados o cargas mal planificadas.
Tienes el marco mod_wsgi
para conectar Apache a Python. Esto puede comportarse como CGI, o puede tener un "daemon" de Python dedicado ejecutándose al final de una tubería con nombre.
El estándar WSGI define un formato para el procesamiento de solicitudes y respuestas que es muy útil y muy extensible. La mayoría de los marcos, de una forma u otra, son compatibles con WSGI.
Finalmente, hay marcos más completos que incluyen definiciones de clase para solicitudes y respuestas, análisis de URL, autenticación, autorización, etc., etc.
Aquí hay una lista: http://wiki.python.org/moin/WebFrameworks
Existen diferentes enfoques que tienen una cosa en común: por lo general, se comunican a través de WSGI con su "contenedor" (el servidor que recibe las solicitudes HTTP antes de ir a su código Python).
Hay varios contenedores:
- wsgiref: una implementación de referencia muy simple que es agradable durante el desarrollo
- Apache con mod_wsgi
- la mayoría de los otros servidores web con un módulo que agrega soporte WSGI
- mucho mas
Hay muchos servidores web disponibles para Python. Algunos de los servidores web como CherryPy fueron escritos en Python. La parte más genial de la respuesta es que el servidor tomcat admite aplicaciones basadas en Python.
Para más detalles, busque en este sitio: https://wiki.python.org/moin/WebServers
Quizás ''uwsgi'' ayude. Aquí está el enlace: http://projects.unbit.it/uwsgi/