Интерфейс WSGI сообщает (http://www.python.org/dev/peps/pep-0333/), что ваше приложение WSGI (в данном случае Django) вызывается и должно возвращать содержимое.
Джанго вызвал вашу функцию просмотра. Ваша функция просмотра вернула обработанный шаблон. Джанго вернул результаты рендеринга шаблона. И от вашего имени он вызвал start_response
вызываемый.
Работая в обратном направлении еще один шаг, Apache вызвал mod_wsgi. mod_wsgi (следуя правилам WSGI) создал среду и передал ее Django вместе с start_response
функцией вызова, которую Django может использовать.
Когда Джанго позвонил start_response
, mod_wsgi был обязан собрать этот ответ и что-то с ним сделать. Он передает его Apache для загрузки в браузер.
Обратите внимание, что Django может быть сделано в довольно большой спешке. Апач, однако, застрял, просачивая начальную страницу в браузер. Затем браузер начинает запрашивать библиотеки .JS, файлы .CSS и все эти изображения. В идеале Apache обрабатывает все остальные последующие запросы.
Вы, возможно, спрашиваете "буфер mod_wsgi для меня?" Ответ зависит от версии. До 2.0 mod_wsgi мог накапливать буфер для вас. mod_wsgi 2.0 и выше не буферизует, он предполагает, что приложение способно буферизовать или имеет промежуточное программное обеспечение для буферизации.
http://code.google.com/p/modwsgi/wiki/ChangesInVersion0200
Как правило, ваш шаблон Django отображается в одном буфере и передается mod_wsgi одним куском, готовым для Apache, чтобы применить выходные фильтры и перенаправить его в браузер.