В этом разделе давайте рассмотрим цикл запроса/ответа Django, на примере нашего приложения.
Следующая ниже схема показывает упрощенный пример того, как Django обрабатывает HTTP-запросы и генерирует HTTP-ответы.
Рассмотрим процесс запроса/ответа Django:
-
Веб-браузер запрашивает страницу по ее URL-адресу, например https://domain.com/blog/33/. Веб-сервер получает HTTP-запрос и передает его Django.
-
Django пробегает по всем шаблонам URL-адресов, определенным в конфигурации шаблонов URL-адресов. Он проверяет каждый шаблон на соответствие заданному пути URL-адреса в порядке их появления и останавливается на первом, который совпадает с запрошенным URL-адресом. В данном случае шаблон
/blog/<int:id>/соответствует пути/blog/33/. -
Django импортирует представление совпавшего шаблона URL-адреса и исполняет его, передавая экземпляр класса
HttpRequestи именованные либо позиционные аргументы. Представление использует модели, чтобы извлечь информацию из базы данных. С помощью встроенного в Django ORM-преобразователя наборы запросовQuerySetsтранслируются в SQL и исполняются в базе данных. -
В представлении используется функция
render(), которая прорисовывает шаблон HTML, передав в него объектPostв качестве контекстной переменной. -
Прорисованный контент возвращается представлением в виде объекта
HttpResponse, по умолчанию с типом контентаtext/html.
Указанную схему всегда можно использовать в качестве базового ориентира в отношении того, как Django обрабатывает запросы.
В целях простоты данная схема не содержит промежуточные программные компоненты Django.