Первая страница, созданная в Django: Hello World
Для начала создадим веб-страницу, которая выводит пресловутое сообщение «Hello world».
Чтобы опубликовать такую страницу без помощи веб-фреймворка, достаточно просто ввести строку «Hello world» в текстовый файл, назвать его hello.html и сохранить в каком-нибудь каталоге на веб-сервере. Отметим, что при этом определяются два ключевых свойства страницы: ее содержимое (строка "Hello world") и URL (http://www.example.com/hello. html или, быть может, http://www.example.com/files/hello.html, если вы решили поместить файл в подкаталог).
При работе с Django вы определяете те же свойства, но по-другому. Содержимое страницы порождает функция представления, a URL задается в настройках URL. Сначала напишем функцию представления.
Ваше первое представление
В каталоге mysite, который был создан командой django-admin.py в предыдущей главе, создайте пустой файл с именем views.ру. Этот Python- модуль будет содержать все представления, рассматриваемые в данной главе. Отметим, что в имени views.ру нет ничего особенного - скоро мы увидим, что Django все равно, как называется этот файл, однако принято называть его именно views.ру, чтобы другие разработчики, читающие ваш код, сразу понимали, что в нем находится.
Представление «Hello world» очень простое. Ниже приведен код функции вместе с командами импорта, который нужно поместить в файл
views.ру:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
Рассмотрим его построчно.
• Сначала импортируется класс HttpResponse, который находится в модуле django.http. Импортировать его необходимо, потому что он используется в коде функции ниже.
• Далее определяется функция представления hello.
• Любая функция представления принимает по меньшей мере один параметр, который принято называть request. Это объект, содержащий информацию о текущем веб-запросе, в ответ на который была вызвана функция; он является экземпляром класса django.http. HttpRequest. В данном примере мы не используем параметр request, тем не менее он должен быть первым параметром представления.
• Отметим, что имя функции представления не имеет значения, фреймворк Django не предъявляет каких-либо специфических требований к именам. Мы назвали ее hello просто потому, что это имя ясно показывает назначение представления, но могли бы назвать hello_wonderful_beautiful_world или еще как-то. В следующем разделе будет показано, каким образом Django находит эту функцию.
• Сама функция состоит всего из одной строки: она просто возвращает объект HttpResponse, инициализированный строкой "Hello world".
Главный урок состоит в том, что представление - обычная функция на языке Python, которая принимает экземпляр класса HttpRequest в качестве первого параметра и возвращает экземпляр класса HttpResponse. Чтобы функция на Python могла считаться функцией представления, она должна обладать этими двумя свойствами. (Существуют исключения, но о них мы поговорим позже.)
Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.