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

Именованные параметры в re_path Django

В re_path параметры задают именованными группами. Имя группы попадет в представление как аргумент функции.

Давайте сделаем маршрут, где вместо id могут быть только цифры:

from django.urls import re_path from main import views urlpatterns = [ re_path( r'^post/(?P<id>\d+)/$', views.post ), ]

В представлении примите аргумент с тем же именем, что и в группе (?P<id>...):

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

Здесь \d+ означает «одна или больше цифр». В отличие от path с конвертером int, значение из регулярки приходит строкой.

Давайте сделаем маршрут со slug - латинские буквы в нижнем регистре, цифры и дефис:

urlpatterns = [ re_path( r'^article/(?P<slug>[a-z0-9-]+)/$', views.article ), ]

В представлении примите параметр slug:

from django.http import HttpResponse def article(request, slug): return HttpResponse('article ' + slug)

Сделайте через re_path маршрут /user/:id/, где id - только цифры. Пусть представление выводит этот id.

Сделайте через re_path маршрут /article/:slug/, где slug состоит из латинских букв в нижнем регистре, цифр и дефиса.

В файле urls.py объявлены следующие маршруты:

urlpatterns = [ re_path( r'^user/(?P<username>\w+)', views.user_profile ), re_path( r'^post/(?P<post_id>\d+)', views.post_detail ), re_path( r'^category/(?P<category_slug>[\w-]+)', views.category_view ), ]

Сделайте для них функции-представления, отдающие соответствующий текст.

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