路径转换器
本课属于 Coddy Django 学习旅程的“Django 基础”单元。第 6 课,共 23 课。
咖啡馆里的每张桌子上都有一个 QR 码,每个 QR 码都需要自己的页面。当路由的一部分是路径转换器时,一个路由就能匹配它们。日历可能会用到两个:
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 页面未找到,视图也不会运行。
挑战
简单为每张表单独创建一个页面。
- 在
menu/urls.py中,添加一条路由,使其匹配/table/5/、/table/12/和其他任意整数。将它指向views.table。 - 在
menu/views.py中,编写一个视图table。它的第二个参数使用转换器的名称。对于表 5,它返回<h1>Table 5</h1>。
打开 /table/12/:你会看到表 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 在线编辑器