Бих искал да тичам едно просто приложение, написано в Flask с Tornado. Как да направя това? Искам да използвам Python 2.7 и последната версия на Tornado (4.2).
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
Отговори:
11 за отговор № 1Флаш документите се описват как да се направи това,но тя бе премахната поради бележките за ефективността по-долу. Не се нуждаете от "Торнадо", за да служите на приложението Ви за флаш, освен ако всичките ви кодове за асинхронизация вече са написани в "Торнадо".
Най- Торнадо документира за WSGI опишете това също. Те също така включват голямо предупреждение, че това вероятно е по-малко изгодно от използването на специален сървър за приложения WSGI, като UWSGI, Gunicorn или mod_wsgi.
WSGI е a синхронен интерфейс, докато модела на конкуренцията на Tornado се основава на едножично асинхронно изпълнение. Това означава, че имате приложение на WSGI с Tornado's
WSGIContainer
е по-малко мащабируеми отколкото да стартирате едно и също приложение на WSGI сървър с множество конциgunicorn
илиuwsgi
, употребаWSGIContainer
само когато има ползи за комбинирането на Tornado и WSGI в същия процес, който превъзхожда намалената мащабируемост.
Например, използвайте Gunicorn вместо това:
gunicorn -w 4 app:app
След всичко това, ако наистина наистина искате да използвате Tornado, можете да използвате модела, описан в документите:
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()