Djangoのurls.pyの仕組みを完全解説!pathとURLルーティングの基本を初心者向けにやさしく説明
生徒
「Djangoの勉強をしていたら、urls.py っていうファイルが出てきました。でも、何を書いているのか全然わかりません……」
先生
「urls.py は、Webサイトの『道案内』をする、とても大事なファイルなんですよ。」
生徒
「道案内、ですか?プログラミングなのに地図みたいですね。」
先生
「その感覚はとても大切です。URLと処理を結びつける仕組みを、順番に見ていきましょう。」
1. Djangoのurls.pyとは何か
Djangoの urls.py は、URLルーティングを設定するためのファイルです。URLルーティングとは、ブラウザからアクセスされたURLと、Django内部の処理を結びつける仕組みのことです。
例えば、Webブラウザで「/」にアクセスしたときと、「/about/」にアクセスしたときでは、表示したい画面が違います。その振り分けを行ってRememberingのが、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点を押さえておくだけで、学習はぐっと楽になります。