このチャプターの目次
Render にデプロイするための設定をしていきます。
基本的にはこちらの公式ドキュメントを参考に進めていきます。
whitenoise
を使用するために、MIDDLEWARE
に追加とSTATICFILES_STORAGE
を設定します。
Render で PostgreSQL を使用できるように、DATABASES
を変更します。
環境変数にDATABASE_URL
が設定されていない場合は、db.sqlite3 データベースを使用するようにしています。
Render にデプロイすると自動的に環境変数にDATABASE_URL
が設定されます。
Render への ssh 接続は有料でないとアクセスできないので、スーパーユーザーをカスタムコマンドで作成します。
そのために、環境変数にSUPERUSER_NAME
、SUPERUSER_EMAIL
、SUPERUSER_PASSWORD
を設定します。
settings.py
from pathlib import Path
# ↓ 追加
import os
import environ
from decouple import config
from dj_database_url import parse as dburl
BASE_DIR = Path(__file__).resolve().parent.parent
env = environ.Env()
env.read_env(os.path.join(BASE_DIR, ".env"))
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
'whitenoise.middleware.WhiteNoiseMiddleware', # 追加
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
# ↓ 追加
default_dburl = "sqlite:///" + str(BASE_DIR / "db.sqlite3")
DATABASES = {
"default": config("DATABASE_URL", default=default_dburl, cast=dburl),
}
STATIC_URL = "static/"
STATIC_ROOT = str(BASE_DIR / "staticfiles")
STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
SUPERUSER_NAME = env("SUPERUSER_NAME")
SUPERUSER_EMAIL = env("SUPERUSER_EMAIL")
SUPERUSER_PASSWORD = env("SUPERUSER_PASSWORD")
環境変数
スーパーユーザー作成用の環境変数を作成します。
.env
SUPERUSER_NAME=admin
SUPERUSER_EMAIL=admin@admin.com
SUPERUSER_PASSWORD=password