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

Djangoのpathとre_pathの違いを完全解説!初心者でもわかるURLルーティング入門

Djangoのpathとre_pathの違いと使い分け
Djangoのpathとre_pathの違いと使い分け

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

生徒

「DjangoのURL設定で、pathとre_pathって2つありますよね。どっちを使えばいいんですか?」

先生

「URLの書き方によって、向いている方法が変わります。まずは、それぞれが何をするものかを知るところから始めましょう。」

生徒

「正規表現って言葉も出てきて、ちょっと不安です……。」

先生

「大丈夫です。パソコンを触ったことがない人でもイメージできるように、例え話を使って説明します。」

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

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

DjangoのURLルーティングとは、「このURLにアクセスされたら、この処理を実行する」という対応表を作る仕組みです。Webサイトを建物に例えると、URLは住所、ビューは部屋の中で行われる作業です。正しい住所を案内しないと、目的の部屋にたどり着けません。

Djangoでは、このURLと処理の対応関係をurls.pyというファイルに書きます。ここで使われるのが、pathre_pathです。

2. pathとは?初心者に一番おすすめの書き方

2. pathとは?初心者に一番おすすめの書き方
2. pathとは?初心者に一番おすすめの書き方

pathは、Djangoで一番よく使われるURL設定方法です。決まった形のURLを、直感的に書けるのが特徴です。英語が少し読めれば意味がわかるため、初心者向けとされています。

例えば「/hello/」にアクセスされたら、hello関数を実行する場合は、次のように書きます。


from django.urls import path
from . import views

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

この書き方は、「helloという住所が来たら、この処理」という感覚で理解できます。難しいルールを覚えなくても使える点が、pathの大きなメリットです。

3. pathで値を受け取る仕組み

3. pathで値を受け取る仕組み
3. pathで値を受け取る仕組み

pathでは、URLの一部を変数として受け取ることもできます。例えば「/user/1/」「/user/2/」のように、数字が変わるURLです。

これは「変換器付きパスコンバータ」と呼ばれる仕組みを使います。難しそうに聞こえますが、「数字ですよ」「文字ですよ」とDjangoに伝えるだけです。


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

<int:id>は、「ここには数字が入り、それをidという名前で使う」という意味です。これだけで、安全にURLを扱えるのがpathの強みです。

4. re_pathとは?自由度が高いURL指定

4. re_pathとは?自由度が高いURL指定
4. re_pathとは?自由度が高いURL指定

re_pathは、正規表現という特別な書き方を使ってURLを指定します。正規表現とは、「文字の並び方のルール」を細かく指定できる方法です。

例えるなら、「この住所は、数字が3桁で、アルファベットが続く場合だけOK」といった細かい条件を出せる仕組みです。


from django.urls import re_path

urlpatterns = [
    re_path(r'^product/[0-9]{3}/$', views.product),
]

このように、細かい条件を指定できる反面、見た目が難しくなりやすいのが特徴です。

5. 正規表現ってなに?超かんたん説明

5. 正規表現ってなに?超かんたん説明
5. 正規表現ってなに?超かんたん説明

正規表現とは、「文字のパターンを表す書き方」です。例えば「[0-9]」は数字1文字、「{3}」は3回繰り返す、という意味になります。

つまり「[0-9]{3}」は、「数字が3つ続く」という条件です。re_pathでは、この正規表現をURLの条件として使っています。

ただし、覚えることが多いため、初心者のうちは無理に使う必要はありません。

6. pathとre_pathの使い分けの考え方

6. pathとre_pathの使い分けの考え方
6. pathとre_pathの使い分けの考え方

基本的な考え方は、とてもシンプルです。ほとんどの場合はpathを使う、これが正解です。

re_pathは、「どうしてもpathでは表現できない複雑なURL」が必要なときだけ使います。例えば、古いシステムとの互換性が必要な場合などです。

SEOの観点でも、シンプルで読みやすいURLは評価されやすいため、path中心の設計がおすすめです。

7. 実務でよくあるURL設定の例

7. 実務でよくあるURL設定の例
7. 実務でよくあるURL設定の例

最後に、よく使われるpathの例を見てみましょう。記事詳細ページのURL設定です。


urlpatterns = [
    path('blog/<int:pk>/', views.blog_detail),
]

このように、数字を受け取るURLはpathで十分対応できます。コードも読みやすく、後から見返したときにも理解しやすい構成になります。

カテゴリの一覧へ
新着記事
New1
Flask
Flask-DebugToolbarでデバッグを効率化!初心者でも安心の使い方ガイド
New2
Flask
Flaskアプリのセキュリティを総合的に強化!初心者でもできるベストプラクティス集
New3
Django
Djangoのpathとre_pathの違いを完全解説!初心者でもわかるURLルーティング入門
New4
Flask
FlaskアプリのDB接続プールを最適化!データベース接続を安定させる初心者ガイド
人気記事
No.1
Java&Spring記事人気No1
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.2
Java&Spring記事人気No2
Flask
FlaskのBlueprintとは?機能ごとに分割して管理する基本設計を学ぼう
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.5
Java&Spring記事人気No5
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.6
Java&Spring記事人気No6
Flask
Flaskアプリのテスト性を高める設計方法まとめ
No.7
Java&Spring記事人気No7
Django
Django settings.py の役割とよく使う設定を完全解説!初心者でもわかる基本と考え方
No.8
Java&Spring記事人気No8
Python
PythonでSQLのLIKE・BETWEEN・INなどの演算子を活用する方法|初心者向け完全ガイド