Djangoのurls.pyの仕組みを完全解説!pathとURLルーティングの基本を初心者向けにやさしく説明
生徒
「Djangoの勉強をしていたら、urls.py っていうファイルが出てきました。でも、何を書いているのか全然わかりません……」
先生
「urls.py は、Webサイトの『道案内』をする、とても大事なファイルなんですよ。」
生徒
「道案内、ですか?プログラミングなのに地図みたいですね。」
先生
「その感覚はとても大切です。URLと処理を結びつける仕組みを、順番に見ていきましょう。」
1. Djangoのurls.pyとは何か
Djangoの urls.py は、WebサイトにアクセスされたときのURLと、実行する処理を結びつけるための重要な設定ファイルです。ブラウザから送られてくるリクエストを見て、「どの画面を表示するか」「どの処理を動かすか」を判断する役割を持っています。
URLルーティングとは、その判断ルールをあらかじめ決めておく仕組みのことです。例えば、トップページ用のURLと、会社概要ページ用のURLでは、表示したい内容がまったく異なりますよね。urls.py は、その違いを正しく振り分けるための案内表のような存在です。
プログラミング未経験の方は、「URLごとに、表示内容を切り替える設定を書く場所」と覚えておくと理解しやすいでしょう。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
]
この簡単な例では、「何も付いていないURL(トップページ)」にアクセスされたとき、views.py に書かれた index という処理を実行する、という意味になります。urls.py は自分では画面を表示せず、あくまで「次にどの処理へ進むか」を決める役割だけを担当している点がポイントです。
2. URLルーティングを身近な例で理解する
URLルーティングは、住所と目的地の関係に似ています。住所(URL)を見て、「この場所なら、この部屋に案内する」と決めるのがurls.pyです。
もし道案内がなければ、訪問者は迷ってしまいます。Djangoでは、その迷子を防ぐためにurls.pyが用意されています。
3. urls.pyの基本的な中身
urls.py には、URLの一覧と、それに対応する処理が書かれています。まずは、最も基本的な形を見てみましょう。
from django.urls import path
from . import views
この部分は、「URLを設定するための道具を使います」「処理は views.py に書いてあります」という宣言です。最初は意味が分からなくても問題ありません。
4. path関数の役割を理解する
Djangoでは、URLルーティングを設定するために path という関数を使います。pathは、「このURLが来たら、この処理を実行する」というルールを書くためのものです。
urlpatterns = [
path('', views.index),
]
この例では、URLの最後が何も付いていない場合に、indexという処理を実行する、という意味になります。
5. route(URLパターン)の考え方
pathの最初の引数は「route」と呼ばれ、URLの形を表しています。例えば「hello/」と書くと、「/hello/」というURLになります。
urlpatterns = [
path('hello/', views.hello),
]
これは、「/hello/ にアクセスされたら hello という処理を実行する」という意味です。URLと処理が一対一で結びついています。
6. views.pyとの関係をやさしく説明
urls.py は、どの処理を呼び出すかを決めるだけで、実際の中身は views.py に書かれています。views.py は、画面表示やデータの返却を担当します。
def hello(request):
return "Hello Django"
urls.py が受付係、views.py が実際に対応するスタッフ、という関係だと考えると分かりやすいです。
7. URLが見つからないときに起きること
urls.py に書かれていないURLにアクセスすると、Djangoは「その道は知りません」と判断します。その結果、エラー画面が表示されます。
Page not found (404)
このエラーが出たときは、URLルーティングが正しく設定されているかを確認することが大切です。
8. 初心者がurls.pyで意識すべきポイント
urls.py は、Djangoの中でも特に重要なファイルの一つです。ただし、最初からすべてを理解しようとしなくて大丈夫です。
「URLと処理を結びつける場所」「pathでルールを書く」という2点を押さえておくだけで、学習はぐっと楽になります。