Djangoを構築するための初期設定を備忘録的にまとめます。Django初学者用にまとめています。人によっては違う構成が必要な場合もあります。
この記事の目次
ステップ1.仮想環境の構築
mkdir xxxxx(フォルダ名)
cd xxxxx(フォルダ名)
python3 -m venv venv
任意のフォルダ名を作成します。
python3 -m venv venv
で仮想環境を用意します。
ステップ2.アクティベート
source venv/bin/activate
仮想環境をアクティベートします。
ステップ3.Djangoのインストール
pip install django
Djangoをインストールします。
ステップ4.プロジェクト立ち上げ
django-admin startproject config .
※configでなくプロジェクト名などでOK。初期設定関連のファイルが生成されるため、私の場合はconfigという名前を好んで使っている。
最後の「.」は現在のディレクトリにconfigフォルダが生成される。
ステップ5.gitignoreの作成
まずは.gitignoreファイルを用意しましょう。
touch .gitignore
まずは以下を対象としましょう。(必要に応じて変更してください)
*.log
*.pyc
__pycache__/
db-volumes/
db.sqlite3
.DS_Store
venv/
local_settings.py
ステップ6.settings.pyの設定
開発環境と本番環境の設定を分けていきます。
local_settings.pyという名前をconfigフォルダ内に作成します。(settings.pyと同じ階層)
from .settings import *
DEBUG = True
ALLOWED_HOSTS = ['127.0.0.1']
SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxx(settings.pyからコピー)'
import os
...
DEBUG = False
ALLOWED_HOSTS = ['xxx.herokuapp.com']
try:
from .local_settings import *
except ImportError:
pass
if not DEBUG:
SECRET_KEY = os.environ['SECRET_KEY']
settings.pyではDEBUGをFalseにします。
ALLOWED_HOSTSは本番環境で公開するドメインを指定します。(今回はherokuドメインを指定します)
tryの部分は、開発環境の場合は、local_settings.pyがimportされ、settings.pyで先に指定していた、DEBUG=FalseやALLOWED_HOSTSが上書きされ、開発環境用のものになります。本番環境の場合は、gitignoreによってlocal_settings.pyがimportできないため、ImportErrorとなり、settings.pyの情報がそのまま利用されます。
ステップ7.commit
SECRET_KEYをlocal_settings.pyに移し、local_settings.pyを.gitignoreに含めたらcommitしてOKです。
SECRET_KEYは初期設定ではdjango-insecure-と頭についています。変更してより強固なものにしましょう。
ステップ8.その他の設定
TEMPLATES = [
...
'DIRS': [
os.path.join(BASE_DIR, 'templates')
],
...
]
LANGUAGE_CODE = 'ja-jp'
TIME_ZONE = 'Asia/Tokyo'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
ステップ9.ユーザー設定
Djangoはデフォルトのユーザー設定を使わないことを推奨しているため、カスタムユーザーを生成します。
python manage.py startapp users(名前は自由)
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
pass
今は特に特別な処理をしないので、pass
します
AUTH_USER_MODEL = 'users.CustomUser'
settings.pyでAUTH_USER_MODELにカスタムユーザーを使うことを宣言します。
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from users.models import CustomUser
class CustomUserAdmin(UserAdmin):
model = CustomUser
list_display = ['username', 'email', 'is_staff']
admin.site.register(CustomUser, CustomUserAdmin)
こちらはadmin.pyの設定です。list_display
でDjangoの標準の管理画面での表示項目を設定しています。
必要に応じて変更ください。
ステップ10.マイグレート
ここまできたらマイグレートしましょう。
python manage.py makemigrations
python manage.py migrate
ステップ11.superuserの作成
python manage.py createsuperuser
管理者ユーザーを作成します。
これで開発環境構築までの一連の流れが完了です。