Начало
работы над приложением
397
Написание
представления
Функция представления получает информацию из запроса, подготавливает данные,
необходимые для построения страницы, и возвращает данные браузеру — часто
с использованием шаблона, определяющего внешний вид страницы.
Файл
views .py
в
learning_logs
был сгенерирован автоматически при выполнении ко-
манды
python
manage.py
startapp
. На данный момент его содержимое выглядит так:
views.py
from django.shortcuts
import render
# Создайте здесь свои представления.
Сейчас файл только импортирует функцию
render()
, которая генерирует ответ
на основании данных, полученных от представлений. Представление домашней
страницы должно быть записано в следующем виде:
from django.shortcuts import render
def index(request):
"""Домашняя страница приложения Learning Log"""
return render(request, 'learning_logs/index.html')
Если URL запроса совпадает с только что определенной схемой, Django ищет
в файле
views .py
функцию с именем
index()
, после чего передает этой функции
представления объект запроса. В нашем случае никакая обработка данных для
страницы не нужна, поэтому код функции сводится к вызову
render()
. Функция
render()
использует два аргумента — исходный объект запроса и шаблон, исполь-
зуемый для построения страницы. Давайте напишем этот шаблон.
Написание
шаблона
Шаблон задает структуру веб-страницы. Он определяет общий внешний вид,
а Django заполняет его соответствующими данными при каждом запросе страницы.
Шаблон может обращаться к любым данным, полученным от представления. Так
как наше представление домашней страницы никаких данных не предоставляет,
шаблон получается относительно простым.
В каталоге
learning_logs
создайте новый каталог с именем
templates
. В каталоге
templates
создайте другой каталог с именем
learning_logs
. На первый взгляд такая
структура кажется избыточной (каталог
learning_logs
в каталоге
templates
внутри
каталога
learning_logs
), но созданная таким образом структура будет однозначно
интерпретироваться Django даже в контексте большого проекта, состоящего из мно-
жества отдельных приложений. Во внутреннем каталоге
learning_logs
создайте
новый
файл с именем
index .html
. Включите в него следующий текст:
index.html
Learning Log
Learning Log helps you
keep track of your learning, for any topic you're
learning about.