カテゴリ: Django 更新日: 2026/02/12

DjangoのincludeでURLを分割管理する方法を完全ガイド!初心者でも迷わないURLルーティング入門

DjangoのincludeでURLを分割管理する方法
DjangoのincludeでURLを分割管理する方法

先生と生徒の会話形式で理解しよう

生徒

「DjangoでURLって書く場所がたくさんあって、どこを見ればいいのか分からなくなりました…」

先生

「Djangoでは、URLをひとつの場所に全部書くこともできますが、includeを使うと整理しながら管理できます。」

生徒

「includeって何をするものなんですか?」

先生

「別のURL設定ファイルを読み込むための仕組みです。ファイルを分けて管理できるので、とても分かりやすくなります。」

1. DjangoのURLルーティングとは?

1. DjangoのURLルーティングとは?
1. DjangoのURLルーティングとは?

DjangoのURLルーティングとは、ブラウザから入力されたURLと、実際に実行されるPythonの処理(ビュー)を結びつける仕組みです。たとえば「/」や「/about/」のようなURLが来たときに、「どの画面を表示するか」「どの処理を動かすか」を判断する役割を持っています。

身近な例でいうと、URLは住所、Djangoは配達員のような存在です。住所(URL)を見て、「この家(ページ)に届けよう」と判断する流れになります。この判断ルールをまとめて書いているのがurls.pyです。

Djangoでは、基本的にこのurls.pyにURLと処理の対応関係を書きます。プログラミング未経験の方でも、「URLの一覧表」だと思って読むと理解しやすくなります。


from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),
]

このサンプルでは、何も付いていないURL(トップページ)にアクセスしたとき、views.pyindexという処理が実行されます。まずは「URLと処理をつなぐ場所がある」という点を押さえておけば大丈夫です。

2. includeとは何をするための機能?

2. includeとは何をするための機能?
2. includeとは何をするための機能?

includeは、URLの設定を別のファイルに分けて管理するための機能です。最初はひとつのファイルでも問題ありませんが、ページが増えると中身がごちゃごちゃになります。

これは、ノートを一冊に全部書くのではなく、教科ごとにノートを分けるイメージです。Djangoのincludeを使うと、アプリごとにURLを整理できるようになります。

3. プロジェクト直下のurls.pyの役割

3. プロジェクト直下のurls.pyの役割
3. プロジェクト直下のurls.pyの役割

Djangoプロジェクトを作ると、最初からプロジェクト用のurls.pyがあります。ここは「全体の案内板」のような場所です。

このファイルでは、細かいURLの内容は書かず、「このURLは、このアプリに任せる」という指定をします。そのときに使うのがincludeです。


from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

この例では、blog/から始まるURLは、blogアプリのURL設定を見るように指示しています。

4. アプリ側にurls.pyを作る理由

4. アプリ側にurls.pyを作る理由
4. アプリ側にurls.pyを作る理由

includeを使うためには、アプリ側にもurls.pyを作ります。これは、そのアプリ専用のURLノートです。

アプリごとにURLを分けることで、どこに何が書いてあるのか一目で分かるようになります。初心者の方ほど、この分け方に慣れておくと安心です。


from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),
    path('about/', views.about),
]

5. includeを使ったURLの流れを図で考える

5. includeを使ったURLの流れを図で考える
5. includeを使ったURLの流れを図で考える

URLの動きを言葉で整理してみましょう。たとえば「/blog/about/」というURLが来たとします。

まずプロジェクトのurls.pyが確認され、「blog/」なのでblogアプリへ渡されます。次に、blogアプリのurls.pyを見て「about/」に対応する処理が呼ばれます。

このように、includeはURLをバケツリレーのようにつないでいく役割を持っています。

6. includeを使わない場合との違い

6. includeを使わない場合との違い
6. includeを使わない場合との違い

includeを使わずに、すべてのURLをひとつのファイルに書くこともできます。しかし、ページが増えるほど探すのが大変になります。

初心者のうちは少ないURLでも、後から増えることがほとんどです。最初からincludeで分けておくと、後で困りにくくなります。

7. よくある書き間違いと注意点

7. よくある書き間違いと注意点
7. よくある書き間違いと注意点

includeを使うときに多いのが、アプリ側にurls.pyを作り忘れることです。その場合、エラーが出てページが表示されません。

また、pathの文字列の最後のスラッシュにも注意が必要です。URLは文字が一つ違うだけで別物として扱われます。


path('shop/', include('shop.urls')),

8. includeを使うメリットを初心者目線で整理

8. includeを使うメリットを初心者目線で整理
8. includeを使うメリットを初心者目線で整理

includeを使う最大のメリットは、迷子にならないことです。URLが増えても、アプリごとに探せばいいので安心です。

また、作業の分担もしやすくなります。DjangoのURLルーティング入門として、includeはとても大切な考え方です。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskのアプリケーションファクトリパターンをやさしく解説!初心者でもわかる理由とメリット
New2
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
New3
Django
Djangoでできることとは?初心者でもわかるDjangoの特徴と向いているプロジェクト
New4
Flask
Flaskとクラウド連携を最適化!初心者でもできるWebアプリ運用のベストプラクティス
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのコメント活用術!初心者向けにTODO・FIXME・ドキュメンテーションコメントの書き方を完全解説
No.2
Java&Spring記事人気No2
Python
Pythonのbytes型とbytearray型とは?初心者向けにバイナリデータの扱い方を解説!
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Flask
Flaskで非同期処理が必要になる場面とは?初心者でもわかる非同期処理とタスク管理の考え方
No.7
Java&Spring記事人気No7
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.8
Java&Spring記事人気No8
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説