DRF+Nuxt+MySQLな環境を作るための備忘録
作業ログ的な感じなので説明省いてますので質問がある方はコメントください。
インストール
requirements.txt
djangorestframework==3.13.1
Markdown==3.3.7
django-filter==21.1
DRFをインストール
$ pip install -r requirements.txt
プロジェクト・アプリ作成
startprojectはconfigなど別ディレクトリに作成
django-admin startproject config .
python manage.py startapp apiv1
ユーザー追加
python manage.py createsuperuser --email xxx@toyscreation.jp --username xxx
> XXX
初回セットアップ
アプリ共通
django/config/settings.py
※ ドメインでアクセスを制限、ワイルドカードにするとセキュリティが甘いのでドメインが確定後に修正が必要
ALLOWED_HOSTS = ['*']
INSTALLED_APPSにDRFのrest_framework
とアプリのapiv1.apps.Apiv1Config
を追加
INSTALLED_APPS = [
...
'rest_framework',
'apiv1.apps.Apiv1Config',
]
日本に変更
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
CORSの設定
CORS_ORIGIN_WHITELIST = [
'http://localhost:3000',
]
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
URLsの設定
django/config/urls.py
urlpatterns = [
...
path('api/v1/', include('apiv1.urls'))
]
DB設定
django/config/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'recrowdfunding',
'USER': 'morita_toyscreation',
'PASSWORD': 'Toys#2022',
'HOST': 'db',
'PORT': '3306',
}
}
マイグレーションファイルを作成し、マイグレーション
docker-compose run web ./manage.py makemigrations
docker-compose run web ./manage.py migrate
開発・本番環境対応
config/settingsディレクトリを作成し各環境ファイルを作成、DBやログを各環境に合わせて変更
$ mkdir config/settings
$ cp ../settings.py local.py
$ cp ../settings.py development.py
$ cp ../settings.py production.py
manage.py、asgi.py、wsgi.pyのDJANGO_SETTINGS_MODULEを修正、デフォルトはローカルを読み込む。
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.setting')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.local')
起動
python manage.py runserver 0.0.0.0:8000
本番実行は--settings=config.settings.production
を指定することで本番設定ファイルを読み込む。
python manage.py runserver --settings=config.settings.production 0.0.0.0:8000