Sobes.tech
Back to questions
Junior — Middle
63

Можете объяснить механизм маршрутизации запросов в Django и как она сопоставляет URL с соответствующими обработчиками?

Companies where asked
Оптимакрос

Answer from AI

sobes.tech AI

В Django маршрутизация запросов осуществляется через систему URL-конфигураций (urls.py). Когда приходит HTTP-запрос, Django последовательно проверяет URL запроса по списку паттернов, заданных в файлах urls.py, начиная с корневого.

Каждый паттерн — это правило, которое сопоставляет часть URL с определённым обработчиком (view-функцией или классом). Если URL совпадает с паттерном, вызывается соответствующий обработчик, который формирует ответ.

Пример простого маршрута:

from django.urls import path
from . import views

urlpatterns = [
    path('articles/<int:year>/', views.year_archive),
]

Здесь, если URL соответствует шаблону 'articles/2023/', параметр year будет равен 2023, и вызовется функция year_archive(request, year=2023).

Таким образом, механизм маршрутизации — это последовательный перебор URL-шаблонов и вызов связанного с ними обработчика при совпадении.