Конвертеры путей
Часть раздела Основы Django путешествия по Django на Coddy. Урок 6 из 23.
У каждого столика в кафе есть 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/и любому другому целому числу; - в
menu/views.pyдобавьте представлениеtable, которое возвращает<h1>Table 5</h1>для стола 5 и так далее.
/table/abc/ выдаёт ошибку 404. Нажмите Run: откроется предварительный просмотр /table/5/.Попробуйте сами
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