Как Django обрабатывает запрос

Опубликовал: Friday, February 17, 2024 в категории Django | Пока нет комментариев

Прежде чем переходить к следующей функции представления, остановимся ненадолго и поговорим о том, как работает Django. Точнее, ответим на вопрос, что происходит за кулисами, когда вы видите сообщение «Hello world» в ответ на запрос к URL-адресу http://127.0.0.1:8000/hello/ в своем броузере.

Все начинается с файла параметров. При выполнении команды python manage.ру runserver сценарий ищет файл settings.ру в том же каталоге, в котором находится файл manage, ру. В этом файле хранятся всевозможные параметры настройки данного проекта Django, записанные заглавными буквами: TEMPLATE_DIRS, DATABASE_NAME и т.д. Самый важный параметр называется R00TJJRLC0NF. Он говорит Django, какой Python-модуль следует использовать в качестве конфигурации URL для данного вебсайта.

Вспомните, что команда django-admin.py startproject создала два файла: settings.ру и urls.py. В автоматически сгенерированном файле settings, ру параметр R00TJJRLC0NF указывает на автоматически сгенерированный файл urls.py. Откройте settings.ру и убедитесь сами; он должен выглядеть примерно так:

ROOTJJRLCONF - ‘mysite.urls’

Это соответствует файлу mysite/urls py. Когда поступает запрос к некоторому URL - например /hello/, - фреймворк Django загружает конфигурацию URL из файла, на который указывает параметр R00T_URLC0NF. Далее он поочередно сравнивает каждый образец URL, представленный в конфигурации, с запрошенным URL, пока не найдет соответствие. Обнаружив соответствие, Django вызывает функцию представления, ассоциированную с найденным образцом, передавая ей в качестве первого параметра объект HttpRequest. (Детально класс HttpRequest будет рассмотрен ниже.)

В примере нашего первого представления вы видели, что такая функция должна возвращать объект HttpResponse. A Django сделает все остальное: превратит объект Python в веб-ответ с нужными HTTP- заголовками и телом (содержимым веб-страницы).

Вот перечень выполняемых шагов:

1.          Поступает запрос к URL /hello/.

2.     Django находит корневую конфигурацию URL, сверяясь с параметром R00T_URLC0NF.

3.     Django просматривает все образцы URL в конфигурации URL, пока не найдет первый, соответствующий URL /hello/.

4.     Если соответствие найдено, вызывается ассоциированная с ним функция представления.

5.         Функция представления возвращает объект HttpResponse.

6.     Django преобразует HttpResponse в соответствующий HTTP-ответ, который визуализируется в виде веб-страницы.

Вот вы и познакомились с основами создания страниц с помошью Django. На самом деле все просто: нужно лишь написать функции представления и отобразить их на URL-адреса с помощью конфигурации URL.

Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *