python flask tornado

python - Cómo ejecutar la aplicación Flask con Tornado



(1)

Los documentos de Flask solían describir cómo hacer esto, pero se ha eliminado debido a las notas de rendimiento a continuación. No necesita Tornado para servir su aplicación Flask, a menos que todo su código asincrónico ya esté escrito en Tornado.

Los documentos de Tornado sobre WSGI también describen esto. También incluyen una gran advertencia de que esto probablemente sea menos eficaz que usar un servidor de aplicaciones WSGI dedicado como uWSGI, Gunicorn o mod_wsgi.

WSGI es una interfaz síncrona , mientras que el modelo de concurrencia de Tornado se basa en la ejecución asincrónica de subproceso único. Esto significa que ejecutar una aplicación WSGI con WSGIContainer de Tornado es menos escalable que ejecutar la misma aplicación en un servidor WSGI gunicorn como gunicorn o uwsgi . Use WSGIContainer solo cuando haya beneficios al combinar Tornado y WSGI en el mismo proceso que supera la escalabilidad reducida.

Por ejemplo, use Gunicorn en su lugar:

gunicorn -w 4 app:app

Después de todo eso, si realmente quieres usar Tornado, puedes usar el patrón descrito en los documentos:

from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoop from yourapplication import app http_server = HTTPServer(WSGIContainer(app)) http_server.listen(5000) IOLoop.instance().start()

Me gustaría ejecutar una aplicación simple escrita en Flask con Tornado. ¿Cómo hago esto? Quiero usar Python 2.7 y la última versión de Tornado (4.2).

from flask import Flask app = Flask(__name__) @app.route(''/'') def hello(): return ''Hello World!'' if __name__ == ''__main__'': app.run()