Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
生徒
「Djangoでプロジェクトを作ったら、フォルダやファイルがたくさん出てきて、どれが何なのか分からなくなりました……」
先生
「最初は誰でもそう感じます。Djangoのディレクトリ構造は、意味を知るととても分かりやすいですよ。」
生徒
「全部覚えないとダメですか?」
先生
「いいえ。まずは全体像と、それぞれの役割をイメージできれば十分です。」
1. Djangoプロジェクトのディレクトリ構造とは
Djangoプロジェクトのディレクトリ構造とは、Webアプリを作るために用意されたフォルダとファイルの並び方のことです。Djangoでは、決まった形でフォルダが作られるため、初心者でも同じ構成から学習できます。
これは、学校の教科書がどの学校でも似た構成になっているのと同じです。最初から整理された状態で用意されているため、迷いにくいのが特徴です。
2. プロジェクト作成直後の全体構成
Djangoでプロジェクトを作成すると、まず一番外側にプロジェクト用のフォルダができます。この中に、操作用ファイルや設定用フォルダが入っています。
myproject/
├─ manage.py
└─ myproject/
├─ __init__.py
├─ settings.py
├─ urls.py
├─ asgi.py
└─ wsgi.py
この形が、Djangoプロジェクトの基本的なディレクトリ構造です。まずは「外側」と「内側」で役割が違う、という点を押さえましょう。
3. manage.pyの役割を理解する
manage.py は、Djangoを操作するための司令塔のようなファイルです。アプリの作成、サーバーの起動、設定の反映など、多くの操作をこのファイル経由で行います。
例えるなら、家電を操作するリモコンのような存在です。直接中身を触ることは少なく、命令を出すために使います。
python manage.py runserver
4. プロジェクト内フォルダの正体
外側のフォルダと同じ名前の内側フォルダが、本当の意味での「プロジェクト本体」です。この中には、Django全体の動きを決める大切な設定ファイルが集まっています。
設定やルールをまとめた場所なので、Webサイト全体の方向性を決める役割を持っています。
5. settings.pyは何をしているファイルか
settings.py は、Djangoプロジェクトのルールブックです。使用するアプリ、言語、時間、セキュリティ設定など、基本的な情報がすべて書かれています。
初心者のうちは、内容をすべて理解する必要はありません。「ここで全体設定をしている」という認識があれば十分です。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
]
6. urls.pyの役割をやさしく説明
urls.py は、Webサイトの住所と処理内容を結びつける案内板のような存在です。どのURLにアクセスされたら、どの処理を行うかを管理します。
住所録や地図のようなイメージで考えると分かりやすく、Djangoでは必ず登場する重要なファイルです。
urlpatterns = [
path('admin/', admin.site.urls),
]
7. asgi.pyとwsgi.pyは何のためにあるか
asgi.py と wsgi.py は、DjangoとWebサーバーをつなぐための橋渡し役です。少し難しい仕組みですが、初心者の段階では「サーバーと会話するための設定ファイル」と理解すれば問題ありません。
普段の学習では、これらのファイルを直接編集することはほとんどありません。
8. なぜこの構造を理解することが大切なのか
Djangoのディレクトリ構造を理解しておくと、「どこに何を書けばいいのか」が分かるようになります。これは、迷子にならずに開発を進めるための地図を持つようなものです。
最初は全部覚えなくても大丈夫です。フォルダやファイルの役割を少しずつ知ることで、Djangoへの苦手意識は自然と減っていきます。