カテゴリ: Django 更新日: 2026/03/15

Djangoの名前付きURL(name=)の使い方を完全解説!初心者でも迷わないURLルーティング入門

Djangoの名前付きURL(name=)の使い方
Djangoの名前付きURL(name=)の使い方

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

生徒

「DjangoでURLを設定していたら、name=って書いてあるのを見たんですが、これは何をしているんですか?」

先生

「それは『名前付きURL』と呼ばれる仕組みで、URLにあだ名を付けて管理しやすくするためのものです。」

生徒

「URLにあだ名ですか? 数字や英語が苦手でも使えますか?」

先生

「もちろんです。パソコンを触ったことがない人でもイメージしやすいように、順番に説明していきます。」

1. Djangoの名前付きURL(name=)とは?

1. Djangoの名前付きURL(name=)とは?
1. Djangoの名前付きURL(name=)とは?

Djangoの名前付きURLとは、URLパターンに「名前」を付ける仕組みです。DjangoではURLルーティングという機能を使って、ブラウザからアクセスされたURLとPythonの処理を結び付けています。そのときに使われるのがurls.pyです。

名前付きURLは、そのURLにラベルを付けるようなものです。電話番号に人の名前を登録する感覚にとても近く、数字の並びを覚えなくても名前で呼び出せるようになります。

2. なぜ名前付きURLが必要なのか

2. なぜ名前付きURLが必要なのか
2. なぜ名前付きURLが必要なのか

URLを直接文字で書いてしまうと、あとからURLを変更したときに修正が大変になります。名前付きURLを使えば、URLの形が変わっても名前はそのまま使えるため、修正箇所が少なくて済みます。

これは初心者にとっても大きなメリットで、URLの文字列を何度も書き直すミスを防ぐことができます。Djangoの公式ドキュメントでも推奨されている基本的な書き方です。

3. urls.pyで名前付きURLを設定する基本

3. urls.pyで名前付きURLを設定する基本
3. urls.pyで名前付きURLを設定する基本

まずは、DjangoのURL設定ファイルであるurls.pyに名前付きURLを定義してみましょう。ここでは一番シンプルな例を使います。


from django.urls import path
from . import views

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

このname='hello_page'の部分が名前付きURLです。ここでは「hello_page」という名前をURLに付けています。

4. ビューと名前付きURLの関係

4. ビューと名前付きURLの関係
4. ビューと名前付きURLの関係

ビューとは、URLにアクセスされたときに実行されるPythonの関数です。名前付きURLは、このビューとセットで使われます。


from django.http import HttpResponse

def hello(request):
    return HttpResponse("こんにちは、Django!")

このビューは「hello_page」という名前のURLから呼び出されます。URLと処理が名前で結び付いているため、あとから見ても役割が分かりやすくなります。

5. テンプレートで名前付きURLを使う方法

5. テンプレートで名前付きURLを使う方法
5. テンプレートで名前付きURLを使う方法

DjangoではHTMLテンプレートからURLを呼び出すことがよくあります。そのときに活躍するのが名前付きURLです。


<a href="{% url 'hello_page' %}">あいさつページへ</a>

この書き方を使えば、URLの文字列を直接書かずに済みます。HTMLの中でもURLの管理がとても楽になります。

6. URLに値を渡す場合の名前付きURL

6. URLに値を渡す場合の名前付きURL
6. URLに値を渡す場合の名前付きURL

URLに数字や文字を含めたい場合でも、名前付きURLは使えます。例えば、番号ごとにページを表示する場合です。


urlpatterns = [
    path('user/<int:id>/', views.user_detail, name='user_detail'),
]

この場合もuser_detailという名前でURLを管理できます。

7. テンプレートで引数付きURLを呼び出す

7. テンプレートで引数付きURLを呼び出す
7. テンプレートで引数付きURLを呼び出す

引数付きの名前付きURLは、テンプレート側で値を渡して使います。


<a href="{% url 'user_detail' 1 %}">ユーザー1のページ</a>

このように書くことで、URLの構造を意識せずに安全にリンクを作れます。初心者でも混乱しにくいのが特徴です。

8. 名前付きURLを使うときの注意点

8. 名前付きURLを使うときの注意点
8. 名前付きURLを使うときの注意点

名前付きURLはプロジェクト内で同じ名前を重複させないように注意が必要です。名前がかぶると、どのURLを指しているのか分からなくなってしまいます。

また、名前は英語の小文字とアンダースコアを使うと読みやすくなります。これは多くのDjango開発者が守っている基本的なルールです。

カテゴリの一覧へ
新着記事
New1
Python
Pythonの関数を引数に渡す方法を初心者向けにやさしく解説!高階関数の使い方も完全ガイド
New2
Python
Pythonのクロージャー(Closure)とは?関数内関数とnonlocalの活用
New3
Python
Pythonのスコープとは?ローカル変数・グローバル変数の違いと使い分け
New4
Python
Pythonのreturn文の使い方!値を返す関数の書き方と注意点
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
No.3
Java&Spring記事人気No3
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.4
Java&Spring記事人気No4
Flask
FlaskのBlueprintとは?機能ごとに分割して管理する基本設計を学ぼう
No.5
Java&Spring記事人気No5
Python
PythonでSQLデータベースのパフォーマンスを向上させる方法|初心者でもわかる高速化の基本
No.6
Java&Spring記事人気No6
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonのfrozensetとは?ミュータブルなsetとの違いをわかりやすく解説
No.8
Java&Spring記事人気No8
Django
Django settings.py の役割とよく使う設定を完全解説!初心者でもわかる基本と考え方