# Django 5.0.9.dev20240806133106 ドキュメント

# Djangoをデプロイするには

Django にある非常に多くのショートカットはWeb開発者を楽にしてくれますが、サイトをかんたんにデプロイできなければ、これらのツールのどれも役に立ちません。 当初より Django は、デプロイのしやすさを大きな目標としてきました。

Django アプリケーションのデプロイには、アーキテクチャや特定のビジネスニーズに基づいて多くの選択肢がありますが、その議論は Django がガイダンスとして提供できる範囲外です。

Django は Web フレームワークなので、動作させるには Web サーバが必要です。そして、ほとんどの Web サーバはネイティブでは Python を使用しないので、通信を実現するためのインターフェイスが必要です。

Djangoは現在、WSGIとASGIの2つのインターフェースをサポートしています。

- WSGI はウェブサーバーとアプリケーション間で通信するためのPythonの主要な規格です。ただし、同期的なコードしかサポートしていません。
- ASGI は、Django サイトで非同期の Python 機能と非同期の Django 機能を使えるようにするための、新しい非同期フレンドリーな標準です。

また、アプリケーションの 静的ファイル をどのように扱うか、そして エラーレポート をどのように扱うかも考慮する必要があります。

最後に、アプリケーションを本番環境にデプロイする前に、 デプロイチェックリスト を実行し、設定が適切であることを確認してください。

- WSGI とともにデプロイするには
  - Django を Gunicorn とともに使う
  - Django を uWSGI とともに使うには？
  - Django を Apache と `mod_wsgi` とともに使うには？
  - Django のユーザーデータベースに対する Apache からの認証
  - `application` オブジェクト
  - Settings モジュールを設定する
  - WSGIミドルウェアを適用する
- ASGI とともにデプロイするには
  - Django を Daphne とともに使う
  - Django を Hypercorn とともに使う
  - Django を Uvicorn とともに使う
  - `application` オブジェクト
  - Settings モジュールを設定する
  - ASGI ミドルウェアの適用
- デプロイチェックリスト
  - `manage.py check --deploy` を実施しよう
  - 最重要な設定
  - 環境に合わせた設定
  - HTTPS
  - パフォーマンスの最適化
  - エラーのレポート