Как я могу лучше узнать, как django работает внутри страны?

поэтому я немного поиграл с django, и мне действительно нравится эта структура. Однако я хотел бы лучше понять, как он работает "под обложками".

Вот мой текущий взгляд на мир client-server-django, который очень груб и, вероятно, заставит ваши ногти скручиваться (извините)...

  • Браузер отправляет запрос Http на сервер.
  • Сервер делает свою магию и сбрасывает запрос через CGI в django (?)
  • Часть django (которая?) получает запрос и превращает его в объект запроса django.
  • Объект запроса блуждает по некоторым туманным путям через промежуточное ПО, которое делает с ним странные вещи.
  • Наконец, объект запроса заканчивается некоторой функцией (которая?), которая просматривает URL-адреса, вынимает шаблоны из urls.py и вызывает функцию просмотра.
  • Функции представления выполняют свою магию (с моделями и шаблонами в качестве партнеров в тисках), это, вероятно, там, где у меня есть самая сильная иллюзия понимания (ну, кроме магии абстракции базы данных, которая есть...;)
  • Функции представления возвращают объект HttpResponse, я думаю, что это возвращается на некоторые туманные пути к CGI.
  • Веб-сервер снова берет на себя и отправляет ответ Http клиенту.

Хорошо, так что, черт возьми, мой вопрос, который вы задаете? Ну, как это все работает, правда? Я не ожидаю, что вы напишите мне все... Я подозреваю, что в конечном итоге ответ будет "читать источник, люк", однако я был бы признателен, если

  • Вы можете прояснить мои ошибочные представления.
  • Скажите, с чего начать? Я бы хотел сделать grap отладчик и просто пройти процесс через пару раз, но я не знаю, с чего начать.
  • вы могли бы указать мне на любые документы, которые объясняют это хорошо... да, я слышал об этой вещи Google, но на самом деле не нашел ничего сверх полезного.

спасибо большое Пол

Ответы

Ответ 1

Смотреть Джеймс Беннетт Django in Depth учебник от Pycon 2015.

Из сайта Pycon, здесь реферат беседы Джеймса:

Большинство книг, учебников и другой документации для Django используют высокоуровневый подход к своим компонентам и API-интерфейсам, и поэтому почти не царапают поверхность фреймворка. Однако в этом учебном пособии мы подробно рассмотрим под капотом, охватывая все, от кистей ORM до внутренних систем шаблонов, до того, как работает интерфейс администратора.

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

Ответ 2

Хорошо, ваше первое заблуждение состоит в том, что CGI имеет к этому какое-то отношение. Это не так, за исключением очень маловероятных и малоиспользуемых конфигураций серверов.

В основном, Django взаимодействует с сервером через WSGI, что является спецификацией Python для веб-серверов для общения с веб-приложениями. Вы можете увидеть дополнительную информацию на веб-сайте