Django入門 - プロジェクト作成とアプリの基本構成
Djangoとは
DjangoはPython製のフルスタックWebフレームワークです。「バッテリー同梱」の思想で、認証、管理画面、ORM、テンプレートエンジンなど多くの機能を標準で提供します。
プロジェクトの作成
# Djangoのインストール
pip install django
# プロジェクト作成
django-admin startproject config .
# ディレクトリ構成
# myproject/
# ├── config/
# │ ├── __init__.py
# │ ├── settings.py # 設定ファイル
# │ ├── urls.py # URLルーティング
# │ ├── asgi.py # ASGI設定
# │ └── wsgi.py # WSGI設定
# └── manage.py # 管理コマンド
# 開発サーバー起動
python manage.py runserver
# http://127.0.0.1:8000/ でアクセス
アプリの作成
Djangoでは機能単位で「アプリ」を作ります。
# アプリ作成
python manage.py startapp blog
# blog/
# ├── __init__.py
# ├── admin.py # 管理画面の設定
# ├── apps.py # アプリ設定
# ├── models.py # データモデル
# ├── tests.py # テスト
# ├── views.py # ビュー(リクエスト処理)
# └── migrations/ # マイグレーションファイル
settings.py の重要な設定
# アプリの登録
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 作成したアプリを追加
]
# データベース設定
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
# 言語・タイムゾーン
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
# 静的ファイル
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_DIRS = [BASE_DIR / 'static']
# メディアファイル
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
manage.py コマンド
# マイグレーション
python manage.py makemigrations # マイグレーションファイル作成
python manage.py migrate # データベースに適用
# スーパーユーザー作成
python manage.py createsuperuser
# シェル
python manage.py shell
# 静的ファイル収集
python manage.py collectstatic
まとめ
django-admin startprojectでプロジェクト作成python manage.py startappでアプリ作成settings.pyでDB、言語、静的ファイルなどを設定- アプリは
INSTALLED_APPSに登録して有効化 manage.pyで各種管理コマンドを実行