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

Djangoの動的URLの作り方を完全ガイド!初心者でもわかるURLルーティング入門

Djangoの動的URL(<int:id> など)の作り方
Djangoの動的URL(<int:id> など)の作り方

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

生徒

「Webサイトって、どうやってページごとに内容を変えているんですか?URLが違うだけで表示が変わるのが不思議です」

先生

「それはURLの中身を見て、プログラムが判断しているからです。Djangoでは“動的URL”という仕組みを使います」

生徒

「動的URLって難しそうです。パソコンを触ったことがなくても理解できますか?」

先生

「大丈夫です。住所や番号札に例えながら、ゆっくり説明していきましょう」

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

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

DjangoのURLルーティングとは、「このURLにアクセスされたら、この処理を実行する」という対応関係を決める仕組みです。URLはインターネット上の住所のようなもので、ユーザーがブラウザに入力したり、リンクをクリックしたときに必ず使われます。たとえば「/shop/」なら商品一覧、「/blog/」ならブログ一覧というように、URLごとに表示する画面が変わります。

Djangoでは、このURLと処理内容の対応を urls.py というファイルにまとめて書きます。プログラミング未経験の方は、「URLを見て、次にどこへ案内するかを書いた地図」や「受付表」のようなものだと考えるとイメージしやすいです。ここを設定することで、Webアプリ全体の流れが整理され、ページ構成も分かりやすくなります。

まずは、いちばん基本的なURLルーティングの例を見てみましょう。


from django.urls import path
from . import views

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

この例では、「/hello/」というURLにアクセスされたとき、views.py にある hello という処理が呼び出されます。URLと処理が一対一で結びついているのが分かりますね。DjangoのURLルーティングは、このように「URL → 処理」をシンプルに書けるのが特徴で、初心者でもWebアプリの仕組みを理解しやすいポイントです。

2. 動的URLとは何かをやさしく理解する

2. 動的URLとは何かをやさしく理解する
2. 動的URLとは何かをやさしく理解する

動的URLとは、URLの一部が毎回変わる仕組みです。たとえば「/item/1/」「/item/2/」のように、数字だけが変わるURLを見たことがあるかもしれません。この数字は商品番号や記事番号のようなものです。Djangoでは、この変わる部分を受け取って処理を変えることができます。これにより、同じプログラムでもたくさんのページを表示できます。

3. <int:id> の意味を超かんたんに説明

3. <int:id> の意味を超かんたんに説明
3. <int:id> の意味を超かんたんに説明

<int:id>は「ここには数字が入ります」という目印です。intは整数、つまり1や2のような数字を意味します。idは名前で、あとからプログラムで使うためのラベルです。番号札を受け取って、その番号の人を呼び出すイメージをすると分かりやすいです。難しい英単語に見えますが、「数字用の箱」くらいの感覚で大丈夫です。

4. urls.pyで動的URLを作ってみよう

4. urls.pyで動的URLを作ってみよう
4. urls.pyで動的URLを作ってみよう

それでは実際に動的URLを定義してみます。まずはurls.pyに書く基本形を見てください。


from django.urls import path
from . import views

urlpatterns = [
    path('item/<int:id>/', views.item_detail),
]

この設定により、/item/1/ や /item/10/ のようなURLが使えるようになります。数字の部分がidとしてビューに渡されます。

5. ビューで数字を受け取る仕組み

5. ビューで数字を受け取る仕組み
5. ビューで数字を受け取る仕組み

次に、受け取った数字をビューで使います。ビューとは、画面に何を表示するかを決める処理です。関数の引数としてidを受け取ります。


from django.http import HttpResponse

def item_detail(request, id):
    return HttpResponse(f"商品番号は {id} です")

ここでは、受け取った数字をそのまま表示しています。URLの数字が変わると、表示される内容も変わることが分かります。

6. 文字列を使った動的URLの例

6. 文字列を使った動的URLの例
6. 文字列を使った動的URLの例

動的URLでは数字だけでなく文字も使えます。たとえば名前やカテゴリです。その場合はstrを使います。


path('hello/<str:name>/', views.hello),

def hello(request, name):
    return HttpResponse(f"こんにちは、{name}さん")

/hello/taro/ のようにアクセスすると、名前に応じた表示ができます。人に話しかけるような感覚で理解すると覚えやすいです。

7. なぜ動的URLが必要なのか

7. なぜ動的URLが必要なのか
7. なぜ動的URLが必要なのか

もし動的URLがなければ、ページごとにURLをすべて手作業で作る必要があります。それはとても大変です。動的URLを使えば、一つの仕組みで何百、何千ものページを扱えます。ブログの記事ページや商品ページでよく使われている理由はここにあります。DjangoのURLルーティングは、初心者でもWebの仕組みを実感できる重要なポイントです。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

よくある間違いは、URLの書き方とビューの引数の名前が合っていないことです。<int:id>と書いたら、ビューでもidという名前を使います。また、最後のスラッシュの有無も重要です。小さな違いですが、動かない原因になりやすいので注意しましょう。失敗しても慌てず、URLとコードを一つずつ確認することが大切です。

カテゴリの一覧へ
新着記事
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の導入方法をやさしく解説