Djangoアプリのベストなディレクトリ構成を完全解説!初心者でも迷わないプロジェクト設計
生徒
「Djangoでアプリを作り始めたんですが、フォルダがたくさんあって、どこに何を置けばいいのか分からなくなりました…」
先生
「Djangoは最初に自動でフォルダを作ってくれますが、役割を知らないと混乱しやすいですね。」
生徒
「ベストなディレクトリ構成って決まりがあるんですか?」
先生
「厳密な正解はありませんが、初心者がつまずかない“基本の形”があります。今日はそれを丁寧に説明します。」
1. Djangoのプロジェクト構成とは何か
Djangoのプロジェクト構成とは、ファイルやフォルダをどのように整理して配置するかという設計図のようなものです。家を建てるときに、キッチンや寝室の場所を決めるのと同じで、最初に整理しておくことで後から困らなくなります。
Djangoでは「プロジェクト」と「アプリ」という二つの単位があり、これを正しく理解することがディレクトリ構成を理解する第一歩になります。
2. プロジェクトとアプリの違いを理解しよう
プロジェクトはWebサイト全体をまとめる箱のような存在です。一方、アプリは機能ごとの部品です。例えば、ブログ機能、ログイン機能、お問い合わせ機能などをそれぞれアプリとして分けます。
この考え方を知ることで、「どのファイルをどこに置くべきか」が自然と分かるようになります。初心者が混乱しやすいポイントなので、しっかり押さえておきましょう。
3. Djangoで作成される基本ディレクトリ構成
Djangoでプロジェクトを作成すると、自動的に基本となるディレクトリ構成が作られます。これはDjangoが推奨する最小構成で、多くの現場でも使われています。
myproject/
├─ manage.py
├─ myproject/
│ ├─ __init__.py
│ ├─ settings.py
│ ├─ urls.py
│ ├─ asgi.py
│ └─ wsgi.py
この段階では、まだアプリは存在していません。まずは全体を管理するための骨組みが用意されている状態です。
4. Djangoアプリを追加したときの構成
次に、アプリを作成すると、新しいフォルダが追加されます。アプリは機能単位なので、プロジェクト直下に配置するのが一般的です。
myproject/
├─ manage.py
├─ myproject/
│ ├─ settings.py
│ └─ urls.py
├─ blog/
│ ├─ models.py
│ ├─ views.py
│ ├─ admin.py
│ └─ apps.py
このように、プロジェクトとアプリを分けて管理することで、機能追加や修正がとても楽になります。
5. ベストとされるディレクトリ構成の考え方
ベストなディレクトリ構成とは、「見ただけで役割が分かる」「後から見返しても迷わない」構成です。初心者のうちは、Djangoの標準構成を大きく変えないことが重要です。
無理に独自構成にせず、公式ドキュメントや多くの記事で紹介されている形を使うことで、検索した情報と同じ構成になり、学習効率が上がります。
6. templatesとstaticフォルダの配置方法
Djangoでは、HTMLファイルをtemplatesフォルダに、画像やCSSをstaticフォルダに置きます。アプリごとに分けることで、管理がしやすくなります。
blog/
├─ templates/
│ └─ blog/
│ └─ index.html
├─ static/
│ └─ blog/
│ └─ style.css
このようにアプリ名でフォルダを分けることで、ファイル名の重複も防げます。
7. settings.pyとディレクトリ構成の関係
settings.pyはDjango全体の設定をまとめたファイルです。ここでアプリの登録や、templates、staticの場所を指定します。ディレクトリ構成と密接に関係しているため、配置を理解していないと設定ミスが起こりやすくなります。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'blog',
]
このようにアプリ名を登録することで、Djangoがそのディレクトリを認識します。
8. 初心者がよく失敗する構成ミス
初心者がよくやってしまうのが、templatesやstaticをプロジェクト直下に雑に置いてしまうことです。動くことはありますが、後から管理が難しくなります。
最初から「アプリごとに整理する」という意識を持つことで、Djangoの考え方に自然と慣れていきます。
9. シンプルで長く使える構成を目指そう
Djangoアプリのベストなディレクトリ構成は、特別なテクニックよりも「基本を守る」ことが大切です。標準構成を理解し、役割ごとに整理するだけで、読みやすく保守しやすいプロジェクトになります。
プログラミング未経験の方でも、この構成を理解しておけば、今後Djangoの学習を進めるうえで大きな土台になります。