Django を Uvicorn とともに使う¶
Uvicorn は uvloop
と httptools
をベースにした速度重視のASGIサーバーです。
Uvicorn のインストール¶
pip
で Uvicorn をインストールします:
python -m pip install uvicorn
Uvicorn で Django を実行¶
Uvicornがインストールされると、ASGIアプリケーションを実行する uvicorn
コマンドが利用できるようになります。Uvicornを呼び出すには、ASGIアプリケーションオブジェクトを含むモジュールの場所と、それに続いてアプリケーションの名前(コロン区切り)を指定する必要があります。
典型的な Django プロジェクトでは、Uvicorn の起動は次のようになります:
python -m uvicorn myproject.asgi:application
このコマンドは 127.0.0.1:8000
を待ち受けるプロセスを1つ起動します。プロジェクトは Python のパス上にある必要があります。それを確実にするために、 manage.py
ファイルと同じディレクトリからこのコマンドを実行してください。
開発モードでは、 --reload
を追加することで、ディスク上のファイルが変更されるたびにサーバをリロードできます。
より高度な使い方は Uvicorn documentation を参照してください。
UvicornとGunicornを使ってDjangoをデプロイする¶
Gunicorn は、プロセス監視と自動再起動を実装した堅牢なウェブサーバーです。本番環境でUvicornを運用する際に役立ちます。
UvicornとGunicornをインストールするには、次のコマンドを実行します:
python -m pip install uvicorn uvicorn-worker gunicorn
Uvicornのworkerクラスを使ってGunicornを起動します:
python -m gunicorn myproject.asgi:application -k uvicorn_worker.UvicornWorker