Какую роль выполняет файл urls.py в проекте Django

Ответ

Файл urls.py в Django — это URL-маршрутизатор (URL dispatcher). Его основная задача — сопоставлять URL-адреса, по которым обращаются пользователи, с соответствующими функциями-обработчиками (views) в вашем приложении.

Когда Django получает HTTP-запрос, он просматривает список urlpatterns в корневом файле urls.py и ищет первое совпадение с URL запроса. Найдя совпадение, он вызывает связанную с ним view-функцию, передавая ей объект запроса и любые параметры из URL.

Ключевые элементы urls.py:

  • urlpatterns: Список, содержащий все маршруты для проекта или приложения.
  • path(): Функция для определения маршрута. Она принимает URL-шаблон, view-функцию и опциональное имя маршрута (name).
  • Path Converters: Механизм для захвата частей URL в виде переменных (например, <int:pk>).
  • include(): Функция для подключения файлов urls.py из других приложений, что позволяет создавать модульную структуру маршрутизации.

Пример urlpatterns:

from django.urls import path, include
from . import views

# Этот список Django будет проверять по порядку
urlpatterns = [
    # 1. Главная страница: '' (пустой путь) -> views.index
    path('', views.index, name='home'),

    # 2. Страница статьи: 'articles/123/' -> views.article_detail с pk=123
    # <int:pk> - это path converter, он захватывает целое число и передает его 
    # в view как аргумент 'pk' (primary key).
    path('articles/<int:pk>/', views.article_detail, name='article_detail'),

    # 3. Подключение всех URL из приложения 'api'
    path('api/', include('api.urls')),
]

Таким образом, urls.py является «диспетчерским центром» проекта, который направляет все входящие запросы по нужным адресам внутри кода.