記事一覧へ戻る 本の順番で続きを読む

Django入門 - プロジェクト作成とアプリの基本構成

Python3上級 | 2026/02/18 21:20

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 で各種管理コマンドを実行