Конвертеры путей
Часть раздела Основы Django путешествия по Django на Coddy. Урок 6 из 23.
У каждого столика в кафе есть QR-код, и для каждого кода нужна своя страница. Один маршрут может соответствовать всем кодам, если одна из его частей — конвертер пути. Для календаря можно использовать два:
path("calendar/<int:year>/<int:month>/", views.calendar),Часть в угловых скобках — это конвертер: тип, двоеточие, имя. int соответствует целому числу и преобразует его в int в Python. Представление получает каждое значение как аргумент с этим именем:
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/: увидишь 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
1Ваш первый сайт на Django
Привет, DjangoВторая страница4Макеты и статические файлы
Наследование шаблоновЗаголовок для каждой страницы2Динамические URL
Конвертеры путейСтраница для каждого напиткаСтроки запросаВыбрасывание Http404Потренируйтесь самостоятельно: Песочница Django