Menu
CoddyTech

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

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

challenge icon

Задание

Легко

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

  1. В menu/urls.py добавь один маршрут, который соответствует /table/5/, /table/12/ и любому другому целому числу. Направь его на views.table.
  2. В 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

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