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

Проверка параметров маршрутов в Django

Конвертеров int и slug хватает не всегда. Например, нужна дата вида '2024-01-15' или одно из нескольких слов. Тогда маршрут задают через re_path и регулярное выражение.

Импортируйте re_path и опишите параметр именованной группой в регулярном выражении:

from django.urls import path, re_path from main import views urlpatterns = [ re_path( r'^posts/(?P<date>\d{4}-\d{2}-\d{2})/$', views.posts_by_date ), ]

В представлении примите аргумент с тем же именем, что и в группе (?P<date>...). В него попадет кусок URL, подошедший под регулярку:

from django.http import HttpResponse def posts_by_date(request, date): return HttpResponse('posts for ' + date)

Еще пример: параметр может быть только одним из заданных слов:

urlpatterns = [ re_path( r'^users/(?P<order>name|surname|age)/$', views.users_order ), ]

Сделайте маршрут вида /posts/:date/, где вместо date должна быть дата в формате год-месяц-день. Проверьте формат через re_path.

Сделайте маршрут вида /users/:order/, где вместо order должно быть одно из значений: 'name', 'surname' или 'age'.

Сделайте маршрут вида /product/:code/, где code - ровно 4 цифры.

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