Django

Django構築の初期設定【初学者向け】

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

管理者ユーザーを作成します。

これで開発環境構築までの一連の流れが完了です。


ウェブつくを支えてくれるスポンサー

  • この記事を書いた人

ウェブつく管理人

WEB制作の仕事をしています。より簡潔に、より分かりやすく解説していきたいと思い、サイトを運営しています。「読むのが苦にならないサイト」を目指しています。よろしくお願いします。

-Django

© 2022 ウェブつく Powered by AFFINGER5