Для чего используется функция path в urls.py Django

Ответ

Функция 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'),
]

В этом примере:

  1. <int:year> — это конвертер пути. Он соответствует целому числу в URL и передает его в views.article_archive в качестве аргумента year.
  2. <slug:slug> — соответствует строке из букв, цифр, дефисов и подчеркиваний и передает ее как аргумент slug.

Отличие от re_path

  • path() использует простой и читаемый синтаксис с конвертерами (<int:pk>).
  • re_path() используется для более сложных случаев, когда требуется вся мощь регулярных выражений для сопоставления URL.