28

Tornado Web サーバーで Django を使用するにはどうすればよいですか?

4

4 に答える 4

46

とてもシンプルです (特に django 1.4 の場合)。

1 - django プロジェクト (およびアプリ) をビルドし、正常に動作することを確認します。

django-admin.py startproject2-ルートフォルダー(使用したのと同じディレクトリ)に新しいpythonファイルを作成します

3- 次に、以下のコードをコピーし、os.environ['DJANGO_SETTINGS_MODULE']行を編集して、その新しい .py ファイルに貼り付けます。

import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
import sys
import django.core.handlers.wsgi
#sys.path.append('/home/lawgon/') # path to your project ( if you have it in another dir).


def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myProject.settings' # path to your settings module
    application = django.core.handlers.wsgi.WSGIHandler()
    container = tornado.wsgi.WSGIContainer(application)
    http_server = tornado.httpserver.HTTPServer(container)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()

Django 1.6 以降では、次のようになります。

import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
from django.core.wsgi import get_wsgi_application

def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' # path to your settings module
    application = get_wsgi_application()
    container = tornado.wsgi.WSGIContainer(application)
    http_server = tornado.httpserver.HTTPServer(container)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()
于 2012-09-27T05:56:28.313 に答える
4

あなたを助けるtornado-proxyと呼ばれるプロジェクトがあります。ただし、Nginxを使用することをお勧めします。Nginx構成で、proxy_passを使用して次のように呼び出しを送信できるようになりました。

location /comet {
  proxy_pass http://localhost:8081;
}

location / {
  proxy_pass http://localhost:8080;
}
于 2010-03-28T22:12:02.847 に答える
2

現実の世界では、Django と本番対応の Web サーバーをWSGIに接続します。このデモは、異なる URL プレフィックスを提供する 1 つの Python モジュールから Tornado (および Web サーバー) と Django を並べて実行する方法を示しています: https://github.com/bdarnell/django-tornado-demo。ただし、Tornado は、Django に向けられたリクエストの処理をブロックします。

于 2011-10-25T19:20:37.013 に答える