Перед тем как приняться за вторую функцию представления, давайте изучим немного подробнее то, как работает Django. Конкретно, что делает Django в тот момент, когда вы запрашиваете страницу через http://127.0.0.1:8000/hello/?
Всё начинается с файла конфигурации. Когда
вы запускаете python manage.py runserver,
скрипт ищет файл с именем settings.py в том
же каталоге, в котором находится файл
manage.py. Данный файл содержит всю
информацию о конфигурации конкретного проекта Django, все
параметры указаны большими буквами:
TEMPLATE_DIRS, DATABASE_NAME и так
далее. Самый главный параметр называется
ROOT_URLCONF. Этот параметр указывает Django
какой модуль Python следует использовать в качестве файла
привязки для данного сайта.
Запомните, что django-admin.py startproject
создаёт файлы settings.py и
urls.py. Параметр
ROOT_URLCONF созданного файла настроек указывает
на созданный файл привязок. Откройте
settings.py и удостоверьтесь сами. Там
должны быть строчка:
ROOT_URLCONF = 'mysite.urls'
Она соответствует файлу mysite/urls.py.
Когда приходит запрос на определённый URL — скажем, на
/hello/ — Django загружает файл привязок,
указанный параметром ROOT_URLCONF. Затем
проверяет каждый шаблон этого файла, по-порядку, сравнивая
запрошенный URL с шаблонами, пока не найдёт подходящий. Если
совпадение найдено, Django вызывает функцию представления,
ассоциированную с данным шаблоном, передавая ей объект
HttpRequest в качестве первого
аргумента. (Мы рассмотрим особенности
HttpRequest позже.)
Как мы видели в нашем первом примере представления, функция
представления должна возвращать
HttpResponse. После того как она это
сделала, Django делает всё остальное: преобразовывает объект
Python в соответствующий отклик с необходимыми HTTP заголовками
и телом (т.е., содержимым страницы).
В общем:
Приходит запрос к /hello/.
Django определяет корневой файл привязки, с помощью параметра конфигурации ROOT_URLCONF.
Django просматривает файл привязки в поисках первого шаблона, который совпадёт с запрошенным URL.
Если такой шаблон найден, Django вызывает ассоциированную с ним функцию представления.
Функция представления возвращает
HttpResponse.Django преобразовывает
HttpResponseв соответствующий HTTP отклик, который реализует страницу.
Теперь вы знаете основы создания страниц с помощью Django. Это несложно — просто напишите функции представления и ассоциируйте их с шаблонами через файл привязки.
| Пред. | Уровень выше | След. |
| Глава 3. Представления и привязки URL | Начало | Ваше второе представление: Динамическое содержимое |
0 комментариев | Оставьте комментарий