> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ale.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Django

> Python言語で作成されたDjangoアプリケーションのデプロイガイドです。

***

## 事前準備

<AccordionGroup>
  <Accordion title="対応Pythonバージョン">
    | Django バージョン | 対応Python バージョン             |
    | ------------ | -------------------------- |
    | Django 3.1   | 3.6, 3.7, 3.8, 3.9         |
    | Django 3.2   | 3.6, 3.7, 3.8, 3.9, 3.10   |
    | Django 4.0   | 3.8, 3.9, 3.10             |
    | Django 4.1   | 3.8, 3.9, 3.10, 3.11       |
    | Django 4.2   | 3.8, 3.9, 3.10, 3.11, 3.12 |
    | Django 5.0   | 3.10, 3.11, 3.12           |
    | Django 5.1   | 3.10, 3.11, 3.12           |
  </Accordion>
</AccordionGroup>

<Warning>
  プロジェクト設定ファイル（requirements.txt など）に記載されたPythonバージョンとデプロイ設定時に選択したバージョンが一致しない場合、ビルドやランタイムエラーが発生する可能性があります。
</Warning>

## テンプレートとリポジトリの選択

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/django_02.png" />
</Frame>

> ダッシュボードの <Icon icon="circle-plus" iconType="solid" size={15} color="2396F1" /> または `⌘ + K` で生成されるデプロイモーダルで **Python** テンプレートを選択し、続くドロップダウンメニューから連携されたGitHubアカウントのリポジトリを選択するか、[Git URLタブでGitリポジトリURLを入力してください。](/ja/developers/private-repo)

<Tip>
  Djangoの場合、`settings.py`で`ALLOWED_HOSTS`、`CSRF_TRUSTED_ORIGINS`を適切に設定しないとページが正常に読み込まれません。
</Tip>

## デプロイ設定値を入力

> 次の各項目にサービスをデプロイするための設定値を入力してください。

<AccordionGroup>
  <Accordion title="基本項目">
    * **バージョン**
    * [環境変数](/ja/developers/env)
    * **ポート番号**: `8000`（デフォルト値）
    * **Start Command**: `python3 manage.py runserver 0:8000`（デフォルト値）
    * [Health Check](/ja/developers/zero-downtime-deployment): コンテナの状態を検証するエンドポイント
  </Accordion>

  <Accordion title="詳細オプション">
    * **Build Variables**: コンテナイメージビルド時に含めるべき変数
    * **Embedded node.js**: プロジェクト内でビルドが必要な Node.js バージョン
    * **Install command**: Python パッケージインストールコマンド
    * **Pre start Command**: Start Command 実行前に実行される事前コマンド
    * **Update strategy**
      * **Rolling Update** : 新バージョンデプロイ後、既存ポッド終了。可用リソース確保必要
      * **Recreate** : 既存ポッドを終了後、新バージョンを作成・起動。ダウンタイム発生

    <Info>
      環境変数とPre Start Commandを以下のように設定することで、Super Userを作成できます。

      ```bash theme={null}
      [環境変数]
      DJANGO_SUPERUSER_USERNAME - Django スーパーユーザーのusername
      DJANGO_SUPERUSER_PASSWORD - Django スーパーユーザーのpassword
      DJANGO_SUPERUSER_EMAIL    - Django スーパーユーザーのemail
      [開始コマンド - Pre Start Command]
      python3 manage.py makemigrations && python3 manage.py migrate && python3 manage.py createsuperuser --noinput
      ```
    </Info>
  </Accordion>
</AccordionGroup>

## リソース設定とデプロイ

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/08_04.png" />
</Frame>

* **リソースタイプ** : [オンデマンドとスポットリソース](/ja/developers/resource#on-demand-spot) から選択

* **CPU**：サービスで利用可能なvCPUの上限を設定。最小構成時は0.1 vCPUを割り当て

* **メモリ** : サービスが使用するメモリリソースの最大値を設定

* [レプリカ](/ja/developers/replica)：設定した数に応じサービスを水平スケーリングし、負荷分散と可用性確保

* **デプロイ** : `デプロイ`をクリック

<Info>
  デプロイが完了したらプレビュードメインを通じてブラウザでウェブページを確認したり、APIツールを使用してリクエストを送信できます。
</Info>

<Tip>
  リソース制限によりデプロイできない場合は、[スペースとリソースの管理ページ](/ja/operations/spaces#%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E4%BB%98%E4%B8%8E)を参照してスペースにリソースを追加してください。
</Tip>

***

[Django Docs](https://docs.djangoproject.com/)
