Построение
других страниц
415
Блок
content
определяется в точке
вставкой тега
{%
block
%}
с именем
content
. Все,
что не наследуется от родительского шаблона, попадает в блок
content
. В данном
случае это абзац с описанием проекта Learning Log. В точке
мы сообщаем о том, что
определение
content
завершено, при помощи тега
{%
endblock
content
%}
. Наличие
имени у
{%
endblock
%}
не обязательно, но если шаблон увеличится и станет вклю-
чать несколько блоков, будет полезно сразу видеть, какой именно блок завершается.
Вероятно, вы уже начинаете понимать преимущества наследования шаблонов:
в дочерний шаблон достаточно включить информацию, уникальную для этой
страницы. Такой подход не только упрощает каждый шаблон, но и значительно
упрощает изменение сайта. Чтобы изменить элемент, общий для многих страниц,
достаточно изменить элемент в родительском шаблоне. Внесенные изменения бу-
дут автоматически перенесены на каждую страницу, наследующую от этого шабло-
на. В проекте из десятков и сотен страниц такая структура значительно упрощает
и ускоряет доработку сайта.
ПРИМЕЧАНИЕ
В больших проектах часто создается один родительский шаблон
base .
html
для всего сайта и родительские шаблоны для каждого крупного раздела сайта . Все
шаблоны разделов наследуют от base .html, и каждая страница сайта наследует от ша-
блона раздела . При такой структуре вы сможете легко изменять оформление и поведе-
ние сайта в целом, любого его раздела или отдельной страницы . Данная конфигурация
сильно повышает эффективность работы и стимулирует разработчика к дальнейшему
совершенствованию сайта .
Страница со
списком тем
Разобравшись с тем, как эффективно организовать построение страниц, мы можем
сосредоточиться на следующих двух страницах: списке всех тем и списке записей
по одной теме. На странице тем выводится перечень всех тем, созданных пользо-
вателями,
и это первая страница, на которой нам придется работать с данными.
Схема
URL для тем
Сначала нужно определить URL для страницы тем. Обычно в таких случаях
выбирается простой фрагмент URL, который отражает суть информации, пред-
ставленной на странице. Мы воспользуемся словом
topics
, так что для получения
страницы будет использоваться URL
http://localhost:8000/topics/
. А вот какие изме-
нения
следует внести в
learning_logs/urls .py
:
urls.py
"""Определяет схемы URL для learning_logs."""
...
urlpatterns = [
#
Домашняя страница
path('', views.index, name='index'),
# Страница со списком всех тем.
❶
path('topics/', views.topics, name='topics'),
]