413 18.6. Домашняя страница Pizzeria: добавьте домашнюю страницу в проект
Pizzeria
, кото-
рый вы начали строить в упражнении 18.4 (с. 408).
Построение других страниц
Теперь, когда вы начали представлять процесс построения страниц, можно пере-
ходить к построению проекта Learning Log. Мы создадим две страницы для вывода
данных: на одной будет выводиться список всех тем, а на другой — все записи по
конкретной теме. Для каждой страницы мы создадим схему URL, напишем функ-
цию представления и создадим шаблон. Но прежде чем переходить к работе, стоит
создать базовый шаблон, от которого будут наследовать все шаблоны этого проекта.
Наследование шаблонов
При построении сайта некоторые элементы почти всегда повторяются на каждой
странице. Вместо того чтобы встраивать эти элементы непосредственно в страницы,
вы можете написать базовый шаблон с повторяющимися элементами; все страницы
будут наследовать от этого шаблона. Такое решение позволит сосредоточиться на
разработке уникальных аспектов каждой страницы и существенно упростит из-
менение общего оформления проекта в целом.
Родительский шаблон
Начнем с создания шаблона
base .html
в одном каталоге с файлом
index .html
. Этот
файл будет содержать элементы, общие для всех страниц; все остальные шаблоны
наследуют от
base .html
. Пока единственным элементом, который должен повто-
ряться на каждой странице, остается заголовок в верхней части страницы. Так как
шаблон будет включаться в каждую страницу, преобразуем заголовок в ссылку на
домашнюю страницу:
base.html
❶
Learning Log
❷
{% block content %}{% endblock content %}
Первая часть файла создает абзац с именем проекта, который также работает как
ссылка на домашнюю страницу. Для построения ссылки использовался
шаблонный тег , обозначенный фигурными скобками и знаками процента
{%
%}
. Шаблонный
тег представляет собой блок кода, который генерирует информацию для вывода на
странице. В данном примере шаблонный тег
{%
url
'learning_logs:index'
%}
гене-
рирует URL-адрес, соответствующий схеме URL, определенной в файле
learning_
logs/urls .py
с именем
'index'
. В данном примере
learning_logs
— пространство
имен, а
index
— схема URL с уникальным именем в этом пространстве имен.