Menu
CoddyTech

Конвертеры путей

Часть раздела Основы 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, и представление не запускается.

challenge icon

Задание

Легко

Создайте страницу для каждого стола:

  • в 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

Потренируйтесь самостоятельно: Песочница Django