Ответ
Функция path() в Django используется для определения маршрутов (URL-шаблонов) в файле urls.py. Она связывает конкретный URL-адрес с функцией-представлением (view) или классом-представлением, которые будут обрабатывать запрос.
Синтаксис
path(route, view, kwargs=None, name=None)
route: Строка, описывающая URL-шаблон. Может содержать конвертеры для извлечения динамических параметров из URL.view: Ссылка на функцию или класс-представление (.as_view()).kwargs: Словарь с дополнительными аргументами, которые будут переданы вview.name: Уникальное имя для этого маршрута. Используется для обратного разрешения URL (reverse URL resolving) с помощью функцииreverse()или тега{% url %}в шаблонах.
Пример с динамическим параметром
# articles/urls.py
from django.urls import path
from . import views
urlpatterns = [
# Пример: /articles/2023/
path('articles/<int:year>/', views.article_archive, name='article-archive'),
# Пример: /articles/my-first-post/
path('articles/<slug:slug>/', views.article_detail, name='article-detail'),
]
В этом примере:
<int:year>— это конвертер пути. Он соответствует целому числу в URL и передает его вviews.article_archiveв качестве аргументаyear.<slug:slug>— соответствует строке из букв, цифр, дефисов и подчеркиваний и передает ее как аргументslug.
Отличие от re_path
path()использует простой и читаемый синтаксис с конвертерами (<int:pk>).re_path()используется для более сложных случаев, когда требуется вся мощь регулярных выражений для сопоставления URL.