Ответ
re_path
— это функция в Django для определения URL-маршрутов с использованием регулярных выражений (regex). Она находится в модуле django.urls
и предоставляет максимальную гибкость в описании сложных URL-шаблонов, которые не могут быть описаны с помощью стандартных конвертеров path
.
Пример:
from django.urls import re_path
from . import views
urlpatterns = [
# Маршрут для архива статей по годам, например /articles/2023/
re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
]
В этом примере регулярное выражение r'^articles/(?P<year>[0-9]{4})/$
соответствует URL-адресам вида /articles/2023/
и извлекает год в качестве именованного аргумента year
, который передается в представление views.year_archive
.
Ключевое отличие от path
:
path
использует простой синтаксис с конвертерами путей (например,<int:pk>
), что делает его более читаемым и предпочтительным для стандартных случаев.re_path
использует всю мощь Python-модуляre
, что необходимо для нестандартных или устаревших URL-схем, которые не покрываются конвертерамиpath
.
Рекомендация:
Всегда используйте path
, если это возможно. Прибегайте к re_path
только тогда, когда гибкости path
недостаточно для решения вашей задачи.