Как в Django определить URL-маршрут с помощью функции path

«Как в Django определить URL-маршрут с помощью функции path» — вопрос из категории Django, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функция path() в Django используется в файле urls.py для сопоставления URL-шаблонов с соответствующими view-функциями или классами. Это основной механизм маршрутизации запросов.

Она принимает несколько ключевых аргументов:

  • route: Строка с URL-шаблоном. Может содержать конвертеры для захвата частей URL (например, <int:pk>).
  • view: Функция или класс-представление (view), которое будет вызвано, если URL совпадет.
  • kwargs (опционально): Словарь дополнительных аргументов, которые будут переданы в view.
  • name (опционально): Уникальное имя для маршрута, позволяющее ссылаться на него из других частей Django (например, в шаблонах или view) с помощью функции reverse().

Пример urls.py:

from django.urls import path
from . import views

urlpatterns = [
    # Пример: /articles/2023/
    path('articles/<int:year>/', views.year_archive, name='article-year'),

    # Пример: /about/
    path('about/', views.about, name='about-page'),
]

Для захвата динамических частей URL используются конвертеры пути:

  • str: Любая непустая строка (кроме /).
  • int: Любое положительное целое число.
  • slug: Строка, состоящая из букв ASCII, цифр, дефисов и знаков подчеркивания.
  • uuid: UUID.
  • path: Любая непустая строка, включая /.