What is the best way to run Django on Tornado Web Server to have async + django admin + django orm possibilities?

前端 未结 2 713
不思量自难忘°
不思量自难忘° 2021-02-04 16:34

I would like to have django admin panel with tornado backends, which will process requests from online game. I dont know at the moment, is it a good idea to load django app in t

2条回答
  •  面向向阳花
    2021-02-04 17:17

    Just take this equation and solve it.

    • You want to have non-blocking IO - X.
    • You want to have django ORM - Y.
    • You want to have django admin - Z.

    Now, move point by point:

    • For X - tornado is enough itself.
    • For Z - django is enough itself. I don't think, you want to have thousands of administrators, that manage your site at one time.
    • For Y it is harder. Django ORM is blocking itself.

    Best way here - not to use Django ORM with tornado.

    Second way - you can dive deeper and integrate it directly in tornado, if you are sure that it will not block whole application. Take solution from this answer.

    Third way - you can convert your django application to service, that makes heavy work with ORM, and you can access this service with AsyncHTTPCLient from tornado.

    Fourth way - integrate tornado web server into your django application. Actually, it will give you small performance boost.

    Fifth way - use two tornado web servers. Sounds crazy, yes. Use one with Django ORM integrated, and second with AsyncHTTPClient.

    I believe, that you can take best of 2 worlds.

提交回复
热议问题