gpt4 book ai didi

django - 在Tornado Web服务器上运行Django以获得异步+ Django管理+ Django Orm可能性的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 05:08:33 26 4
gpt4 key购买 nike

我想拥有带有 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吗?

最佳答案

只需采用此方程式并求解即可。

  • 您想拥有非阻塞IO-X。
  • 您想要django ORM-Y.
  • 您想要django管理员-Z.

  • 现在,逐点移动:
  • 对于X- Tornado 本身就足够了。
  • 对于Z-django本身就足够了。我不认为,你想拥有
    成千上万的管理员,一次可以管理您的网站。
  • 对于Y来说,难度更大。 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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com