español django tornado

español - ¿Tornado es un reemplazo para Django o son complementarios entre sí?



django vs (2)

Tengo varias preguntas sobre Tornado y otros frameworks web.

1) Tornado afirma ser un servidor web (no bloqueante, por lo tanto tiene un gran rendimiento), por lo que algunas personas dijeron que no desempeña el papel de django, es decir, tornado no es un marco web.

Sin embargo, proporciona un marco web que creo ( http://www.tornadoweb.org/documentation#main-modules ) - de esta manera, parece reemplazar a django como el marco de desarrollo web.

¿Es correcto mi entendimiento anterior?

2) Normalmente, varios Tornados se configuran detrás de Nginx. Tomcat también se configura normalmente detrás del servidor web Apache. ¿Puedo decir que Tornado desempeña exactamente el mismo papel que Tomcat para el servidor web Java? Si la respuesta es sí, entonces Tornado ES un marco web.

3) Leí un artículo que dice que usamos Tornado y Django juntos, como http://www.jeremybowers.com/blog/post/3/on-deploying-tornado-web-server-framework/ , pero leí un artículo en línea afirmando que "si usas Django, entonces pierdes lo asíncrono de Tornado", ¿es esto cierto o falso? Sin embargo, una pregunta relacionada, si Tornado es en sí mismo un marco web como dije en 1), ¿por qué la gente se molesta en usar Django? (para dar como resultado el plugin?)

¿Alguien me puede dar una introducción 101?


  1. Tornado es un servidor web y un marco web para la mayoría de las definiciones, pero es un marco bastante mínimo (en comparación con Rails o Django). Los módulos de Tornado están acoplados de manera flexible, por lo que es posible usar solo el componente del servidor web (o incluso solo el bucle de IO de nivel inferior). En comparación con Django, hay muchas áreas donde Tornado no tiene tanta funcionalidad. Por ejemplo, no hay realmente una abstracción modelo en Tornado, tienes que rodar la tuya.

  2. Cuando ejecutas una aplicación Tornado detrás de Nginx, esa es tu aplicación ejecutándose, Nginx solo sirve de proxy. Creo que Tomcat es un servidor de aplicaciones, distinto de su aplicación. No llamaría a Tomcat un framework web.

  3. Django no es asíncrono, por lo general, su aplicación se bloqueará al usar los componentes de Django. Puede que esto no sea un gran problema, depende de lo que estés haciendo. Los desarrolladores de Tornado han declarado (parafraseando en gran medida) que para la mayoría de las aplicaciones, la mayor ganancia proviene de no bloquear mientras se espera al cliente, es decir, el navegador web. Bloquear en la base de datos, por ejemplo, no es un gran problema si mantiene sus consultas rápidamente.

Hay muchos pros y contras tanto para Django como para Tornado, y hay muchas alternativas para ambos: definitivamente no es solo una opción entre los dos. Aquí hay una lista muy rápida de por qué es posible que desee utilizar Django:

Pros para Django:

  • es una pila más completa (las páginas de administración, por ejemplo, son muy fáciles de implementar)
  • Es mucho más establecido (plugins, tutoriales, etc.)
  • está mejor documentado
  • su ORM es muy agradable

Para responder a la pregunta,

  • NO, Tornado no es un reemplazo para Django. Es una alternativa.

  • SÍ, son complementarios entre sí pero no en el mismo proceso (*)

Utilizaría Django cuando se trata de un gran esfuerzo de equipo y / o necesita ejecutarse en una base de datos SQL.

Yo usaría Tornado para todo lo demás. Es decir. proyectos personales, aplicaciones relacionadas con WebSocket, aplicaciones que utilizan un backend NoSQL.

(*) no te molestes en ejecutar django dentro de tornado o al revés a menos que realmente tengas un requisito fuerte para eso.