DjangoのURLルーティングとは?初心者向けに仕組みと役割をやさしく解説
生徒
「DjangoでWebページを表示したいんですが、URLルーティングって言葉が出てきて、何をしているのか分かりません……」
先生
「URLルーティングは、アクセスされたURLと処理内容を結びつける、とても大切な仕組みです。」
生徒
「URLと処理を結びつけるって、どういうことですか?」
先生
「住所と行き先を対応させる地図のようなものだと思ってください。順番に説明しますね。」
1. DjangoのURLルーティングとは何か
DjangoのURLルーティングとは、Webブラウザから送られてきたURLを見て、「次にどの処理を動かすか」を決める仕組みです。ユーザーがアクセスしたURLは、必ず最初にURLルーティングを通り、対応する処理へ案内されます。
たとえば、ブラウザで「/login/」と入力された場合はログイン画面の処理へ、「/contact/」なら問い合わせページの処理へ、といった具合に振り分けられます。URLルーティングは、Webサイト全体の入口であり、道案内の役割を持っています。
プログラミング未経験の方でも、「URLごとに、やることを決めているルール」と考えるとイメージしやすいでしょう。
# urls.py の例
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello),
]
この例では、「/hello/」というURLにアクセスされたとき、hello という処理を実行する、という意味になります。URLルーティングを設定することで、Djangoは迷わず正しい処理を呼び出せるようになります。
2. URLルーティングを身近な例で考える
URLルーティングは、郵便配達にとてもよく似ています。住所(URL)を見て、どの家(処理)に荷物(リクエスト)を届けるかを決めています。
もし住所が間違っていたら、配達できないのと同じように、URLルーティングが設定されていないURLにはアクセスできません。
3. DjangoでURLルーティングを管理する場所
Djangoでは、URLルーティングの設定を urls.py というファイルに書きます。このファイルは、プロジェクト全体やアプリごとに存在します。
urls.py は「URLの一覧表」のような存在で、どのURLがどの処理につながるかをまとめて管理しています。
from django.urls import path
from . import views
4. path関数でURLと処理を結びつける
DjangoのURLルーティングでは、path という関数を使って設定します。pathは「このURLが来たら、この処理を実行する」というルールを書くためのものです。
urlpatterns = [
path('', views.index),
]
この例では、何も付いていないURLにアクセスされたとき、indexという処理を実行する、という意味になります。
5. viewsとの関係をやさしく理解する
URLルーティングで指定される処理の多くは、views.py に書かれています。viewsは、実際に画面を表示したり、データを返したりする役割を持っています。
URLルーティングは「案内係」、viewsは「実際に対応する担当者」と考えると分かりやすいです。
def index(request):
return "Hello Django"
6. なぜURLルーティングが必要なのか
URLルーティングがないと、Djangoは「どのURLで、何をすればいいのか」が分かりません。すべてのリクエストを正しく処理するために、URLと処理を明確に結びつける必要があります。
この仕組みがあることで、URLを見ただけで「どんなページか」が想像しやすくなり、Webサイト全体が整理されます。
7. アクセスできないときのよくある原因
初心者の方がつまずきやすいのが、「URLにアクセスしても画面が表示されない」というケースです。その多くは、urls.py に設定が書かれていないことが原因です。
Page not found (404)
このような表示が出た場合は、「URLルーティングが設定されているか」を確認するのが第一歩です。
8. 初心者がURLルーティングで意識すべきポイント
URLルーティングは、最初は難しく感じますが、「URLと処理を結びつけているだけ」と考えると、ぐっと分かりやすくなります。
まずは、どのファイルに何を書くのか、全体の流れを理解することが大切です。細かい書き方は、使いながら自然と身についていきます。