Как работает Django
- Веб-сервер получает HTTP-запрос от посетителя. Django не содержит полноценного веб-сервера и предполагается, что будет задействована какая-то программа-веб-сервер или WSGI-сервер (Apache, nginx, LightHTTPd, Caddy, uWSGI и так далее).
- Веб-сервер передаёт запрос Django через точку входа.
- Django создаёт объект HTTPRequest и пропускает его через цепочку Middleware.
- Django просматривает urlconf и ищет представление, которое способно обработать запрос. Если его нет, возвращается ошибка HTTP 404 Not Found.
- Django запускает найденное представление, передавая ему Request и параметры из адреса.
- Представление взаимодействует с хранилищем данных (через модели), выполняет какие-то (любые) действия, читает/записывает файлы, и вообще делает то, для чего предназначено. В результате представление должно сформировать HTTP-ответ. Очень часто для этого применяеются шаблоны HTML-файлов, чтобы не создавать веб-страницу с нуля, а использовать готовые фрагменты.
- Django пропускает созданный представлением ответ через цепочку Middleware.
- Ответ отдаётся веб-серверу, а тот, в свою очередь, передаёт ответ посетителю.
Зелёным отмечены блоки, которые пишет разработчик. Всё остальное — это готовые компоненты Django.