Django のインストール
現在最新の LTS は 3.2 です。
pip install Django==3.2
2024年4月までサポートされます。
プロジェクトのベース作成
最初に Django に関するフォルダ・ファイル群を生成していきます。
プロジェクトの作成
django-admin startproject testproject .
シェル / ターミナル上で上記のコードを入力するとディレクトリが生成されます。
最後にピリオドつけないと階層が一階層深くなってしまいます。
PyCharm だとサーバーを起動する際に仮想環境の変更が必要になるので注意。
アプリケーションの作成
python manage.py startapp testapp
このとき、生成されたアプリケーションフォルダの中に urls.py を作成しておきます。
templates フォルダの作成

templates フォルダは手動で作ります。
この中に html や css などを入れていきます。
settings.py の編集
バージョンによる BASE_DIR の違い
Django 3.0
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Django 3.2
BASE_DIR = Path(__file__).resolve().parent.parent
バージョンで書き方が違います。
パスの渡し方も変わります。
例えば デフォルトでのデータベースで設定されているパスは下記。
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # 3.0 'NAME': BASE_DIR / 'db.sqlite3', # 3.2.8
3.0 の場合は BASE_DIR + '/db.sqlite3'
とかで書いてもよさそうです。
ALLOWED_HOSTS
ALLOWED_HOSTS = ['*']
DEBUG = True
の場合は必ずこの記載にする、
というチュートリアルもあれば何も設定せずに進むチュートリアルもありました。
INSTALLED_APPS
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'testapp.apps.TextappConfig' # 自作アプリの追記 'testapp' # これだけでも大丈夫っぽい ]
チュートリアルによってここの記載方法が違っていました。'testapp'
のみで進むチュートリアルもあります。公式では上のコードで表記されています。
公式の書き方
'testapp.apps.TextappConfig'
に関しては
アプリケーションフォルダのなかにある app.py にこの名前の関数が用意されています。
from django.apps import AppConfig class TestappConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'testapp'
この関数を読み込んできています。
こちらはアプリケーションフォルダを生成した際に自動で作られているものです。
TEMPLATES
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR, 'templates'], # 自作した templates フォルダの追記 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
この TEMPLATES の設定はデフォルトでも問題ないようです。
設定するチュートリアルと設定しないチュートリアルがありました。
'APP_DIRS': True
があるとデフォルトで直下の templates フォルダを見るようです。
別の名前や階層を指定する際にここを設定するのがよさそうです。
言語コード
必要であれば変更。
LANGUAGE_CODE = 'ja'
タイムゾーン
TIME_ZONE = 'Asia/Tokyo'
アプリケーションサーバの起動
ここまで設定するとアプリケーションサーバを日本語で起動できます。
python manage.py runserver
ターミナルに上記のコードを打つことで起動します。

URL の接続
プロジェクトの urls.py
を編集します。
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('testapp.urls')) ]
これで admin 以外の URL が指定された場合、アプリケーションの urls.py へ繋がるようになります。