РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pydjPmRtCv 14 of 187 menu

Конвертеры параметров маршрутов в Django

По умолчанию параметр из URL приходит в представление строкой. Но часто нужно, чтобы это было число или особый формат. Для этого в path используют конвертеры (converters).

Конвертер пишут перед именем параметра через двоеточие. Самый частый - int: в параметр попадут только цифры, и в представлении это уже будет целое число:

urlpatterns = [ path('post/<int:id>/', views.post), ]

В представлении параметр нужно принять с тем же именем. Так как мы указали конвертер int, в id попадет уже число, а не строка:

from django.http import HttpResponse def post(request, id): return HttpResponse('post ' + str(id))

Другие полезные конвертеры:

  • str - любая строка без слэша (это значение по умолчанию)
  • slug - буквы, цифры, дефис и подчеркивание
  • uuid - UUID
  • path - строка, которая может содержать слэши

Пример со slug:

urlpatterns = [ path('article/<slug:slug>/', views.article), ]

Сделайте маршрут вида /user/:id/, где вместо id должно быть число. Используйте конвертер int.

Сделайте маршрут вида /post/:slug/, где вместо slug должны быть буквы, цифры, дефис или подчеркивание. Используйте конвертер slug.

Сделайте маршрут вида /city/:name/ с конвертером str. Пусть представление выводит название города.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить