2011-05-27 25 views
35

Esta pregunta probablemente delata una idea errónea, pero tengo curiosidad por saber cuál es el "Tomcat" del mundo de Python.¿Cuál es el equivalente Python de Tomcat?

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 solicitudes HTTP, ¿qué haría con él? ¿Cómo lo implementaría?

Específicamente: ¿Cuál es el contenedor más 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?

+0

Hay muchos frameworks web para Python. Intente buscar "framework web Python" para obtener una lista de ellos. ¿Que más quieres saber? Solo la lista? –

+1

No estoy buscando un marco, estoy tratando de entender cómo se haría una aplicación web de Python sin un marco. Estoy comparando con Servlets y Tomcat, no con Spring o Struts. –

+1

@ FarmBoy: "Servlets y Tomcat" en realidad es parte de un marco web. Lo siento, pero ese sigue siendo el marco. Para alejarse de Framework, tendría que estar escribiendo sockets o scripts CGI. Todavía hay docenas de marcos de Python que son más o menos equivalentes a Tomcat. Por favor busca y lee los resultados. ¿Qué quieres saber ** específicamente **? –

Respuesta

27

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 recipientes:

  • wsgiref - una muy simple implementación de referencia que es agradable durante el desarrollo
  • Apache con mod_wsgi
  • más otros servidores web con un módulo de añadir soporte WSGI
  • many more
+2

esto es lo más parecido a la parte API Servlet de la especificación J2EE en el mundo de Python. –

+0

Gracias, esto es útil. –

+0

Solo para agregar a esta respuesta que si está buscando un _servidor de aplicación_ completo (como jboss/websphere), no solo un contenedor (como Tomcat), entonces el único en el que puedo pensar es [Zope] (http: // zope2.zope.org/about-zope-2/what-is-zope-2). –

4

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 solicitudes HTTP, ¿qué haría con él? ¿Cómo lo implementaría?

Eso depende.

¿Cuál es el contenedor más utilizado en Python?

No hay ninguna.

¿Y hay un equivalente de un archivo WAR, un paquete estándar de una aplicación web en un archivo que funciona en los distintos contenedores?

No hay ninguna.


HTTP es un protocolo para generar una respuesta a una solicitud. Eso es. Es realmente una cosa muy pequeña.

Tiene 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.

Tiene 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.

Por último, existen marcos más completos que incluyen las definiciones de clase de solicitudes y respuestas, análisis de la URL, autenticación, autorización, etc., etc.

He aquí una lista: http://wiki.python.org/moin/WebFrameworks

0

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 mire en este sitio: https://wiki.python.org/moin/WebServers

+1

El uso de Tomcat solo es posible con Jython, no para una aplicación web de Python arbitraria. –

Cuestiones relacionadas