tornado.wsgi — Interoperability with other Python frameworks and servers

WSGI对Tornado Web框架的支持.

WSGI是Web服务器的Python标准,并允许Tornado与其他Python Web框架和服务器之间的互操作性.

该模块通过WSGIContainer类提供WSGI支持,这使得在Tornado HTTP服务器上使用其他WSGI框架运行应用程序成为可能. 不支持相反的操作; Tornado ApplicationRequestHandler类设计用于Tornado HTTPServer ,不能在通用WSGI容器中使用.

class tornado.wsgi.WSGIContainer(wsgi_application: WSGIAppType)[source]

使与WSGI兼容的功能在Tornado的HTTP服务器上可运行.

Warning

WSGI是一个同步接口,而Tornado的并发模型基于单线程异步执行. 这意味着运行与龙卷风的一个WSGI应用WSGIContainer比喜欢多线程WSGI服务器上运行相同的应用程序可扩展性少 gunicornuwsgi . 仅当在同一过程中组合Tornado和WSGI的好处大于降低的可伸缩性时,才使用WSGIContainer .

将WSGI函数包装在WSGIContainer然后将其传递给HTTPServer来运行它. 例如:

def simple_app(environ, start_response):
    status = "200 OK"
    response_headers = [("Content-type", "text/plain")]
    start_response(status, response_headers)
    return ["Hello world!\n"]

container = tornado.wsgi.WSGIContainer(simple_app)
http_server = tornado.httpserver.HTTPServer(container)
http_server.listen(8888)
tornado.ioloop.IOLoop.current().start()

此类旨在让其他框架(Django,web.py等)在Tornado HTTP服务器和I / O循环上运行.

tornado.web.FallbackHandler类通常可用于在同一服务器中混合Tornado和WSGI应用程序. 有关完整的示例,请参见https://github.com/bdarnell/django-tornado-demo .

static environ(request: tornado.httputil.HTTPServerRequest) → Dict[str, Any][source]

tornado.httputil.HTTPServerRequest转换为WSGI环境.