Menu
CoddyTech

パスコンバーター

CoddyのDjangoジャーニー「Djangoの基礎」セクションの一部。レッスン 6/23。

カフェのテーブルにはそれぞれQRコードがあり、各コードには専用のページが必要です。一部にパスコンバーターを使えば、1つのルートですべてに一致させられます。カレンダーでは、次の2つを使うことがあります。

path("calendar/<int:year>/<int:month>/", views.calendar),

山かっこで囲まれた部分がコンバーターです。型、コロン、名前で構成されます。intは整数に一致し、その値をPythonのintに変換します。ビューは、それぞれの値をその名前の引数として受け取ります。

def calendar(request, year, month):
    return HttpResponse(f"<h2>{month} / {year}</h2>")

/calendar/2026/3/の場合、Djangoはcalendar(request, year=2026, month=3)を呼び出します。/calendar/next/3/のようにコンバーターに一致しないアドレスでは、404「ページが見つかりません」が返され、ビューは実行されません。

challenge icon

チャレンジ

簡単

各テーブルに専用のページを用意しましょう。

  1. menu/urls.pyで、/table/5/、/table/12/、およびほかの任意の整数に一致するルートを1つ追加します。views.tableに割り当てます。
  2. menu/views.pyで、ビューtableを書きます。2つ目の引数にはコンバーターの名前が入ります。テーブル5の場合、<h1>Table 5</h1>を返します。

/table/12/を開くと、Table 12が表示されます。

自分で試してみよう

from django.urls import path

from . import views

urlpatterns = [
    path("", views.home),
    path("about/", views.about),
    path("hours/", views.hours),
    path("contact/", views.contact),
]

Djangoの基礎のすべてのレッスン

自分で練習してみよう: Djangoプレイグラウンド