Ответ
Функция 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.