Можете объяснить механизм маршрутизации запросов в Django и как она сопоставляет URL с соответствующими обработчиками?
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-шаблонов и вызов связанного с ними обработчика при совпадении.