Django 5 для начинающих

Прогресс по курсу:  9/1004

5.7 Итоги работы
2 из 3 шагов пройдено
0 из 15 баллов  получено

В этом разделе давайте рассмотрим цикл запроса/ответа Django, на примере нашего приложения.

Следующая ниже схема показывает упрощенный пример того, как Django обрабатывает HTTP-запросы и генерирует HTTP-ответы.

Рассмотрим процесс запроса/ответа Django:

  1. Веб-браузер запрашивает страницу по ее URL-адресу, например https://domain.com/blog/33/. Веб-сервер получает HTTP-запрос и передает его Django.

  2. Django пробегает по всем шаблонам URL-адресов, определенным в конфигурации шаблонов URL-адресов. Он проверяет каждый шаблон на соответствие заданному пути URL-адреса в порядке их появления и останавливается на первом, который совпадает с запрошенным URL-адресом. В данном случае шаблон /blog/<int:id>/ соответствует пути /blog/33/.

  3. Django импортирует представление совпавшего шаблона URL-адреса и исполняет его, передавая экземпляр класса HttpRequest и именованные либо позиционные аргументы. Представление использует модели, чтобы извлечь информацию из базы данных. С помощью встроенного в Django ORM-преобразователя наборы запросов QuerySets транслируются в SQL и исполняются в базе данных.

  4. В представлении используется функция render(), которая прорисовывает шаблон HTML, передав в него объект Post в качестве контекстной переменной.

  5. Прорисованный контент возвращается представлением в виде объекта HttpResponse, по умолчанию с типом контента text/html.

 

Указанную схему всегда можно использовать в качестве базового ориентира в отношении того, как Django обрабатывает запросы.

В целях простоты данная схема не содержит промежуточные программные компоненты Django.


  • Комментария
Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий

Очень наглядная схема работы запроса/ответа Django, авторам большое спасибо!

Изменен Максим Михеев

Рисунок топ, когда визуально видишь схему работы - все вопросы сами собой закрываются

Изменен Георгий Тимофеев

разве тут не должен быть <int:id>/ для определения чисел как id?

@Ilia_Boiarintsev, должен, исправил текст и схему, спасибо за помощь.