我想拥有带有 Tornado 后端的django管理面板,它将处理来自在线游戏的请求。我目前不知道,以下面的方式加载django应用程序是一个好主意:
wsgi_app = tornado.wsgi.WSGIContainer(
django.core.handlers.wsgi.WSGIHandler())
tornado_app = tornado.web.Application(
[
('/hello-tornado', HelloHandler),
('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
])
server = tornado.httpserver.HTTPServer(tornado_app)
server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
HelloHandler将成为后端解析器。
在组合wsgi + ioloop时,我会失去一些性能吗?
如果解决方案不好,则可以运行2个应用程序:django admin和 Tornado 网站。您能回答我如何在Tornado App中使用Django ORM吗?
最佳答案
只需采用此方程式并求解即可。
现在,逐点移动:
成千上万的管理员,一次可以管理您的网站。
最好的方法-不要在 Tornado 中使用Django ORM。
第二种方法-如果您确定它不会阻塞整个应用程序,则可以更深入地进行研究并将其直接集成到 Tornado 中。从this答案中获取解决方案。
第三种方法-您可以将django应用程序转换为服务,这会使ORM繁重工作,并且可以使用 Tornado 中的
AsyncHTTPCLient
访问此服务。第四种方法-将 Tornado Web服务器集成到您的Django应用程序中。实际上,它会给您带来很小的性能提升。
第五种方式-使用两个 Tornado Web服务器。听起来很疯狂,是的。结合使用集成了Django ORM的产品和结合使用
AsyncHTTPClient
的产品。我相信,您可以选择两个世界中最好的一个。
关于django - 在Tornado Web服务器上运行Django以获得异步+ Django管理+ Django Orm可能性的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733752/