2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DRF(Django REST framework)インストール・セットアップ方法

Last updated at Posted at 2022-06-22

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
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?