Книга «Изучаем Python»



Pdf көрінісі
бет242/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   238   239   240   241   242   243   244   245   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 18 • Знакомство с Django
Дочерний шаблон не обязан определять каждый блок в своем родителе, так что 
в родительских шаблонах можно зарезервировать место для любого количе-
ства блоков, а дочерний шаблон будет использовать столько из них, сколько по-
требуется.
ПРИМЕЧАНИЕ
В коде Python почти всегда используются отступы в четыре пробела . Файлы шаблонов обычно 
имеют больший уровень вложенности, чем файлы Python, поэтому каждый уровень отступа обычно 
обозначается двумя пробелами .
Дочерний шаблон
Теперь нужно переписать файл 
index .html
так, чтобы он наследовал от 
base .html

Обновленный файл 
index .html
выглядит так:
index.htm
 
{% extends "learning_logs/base.html" %}
 
{% block content %}
Learning Log helps you keep track of your learning, for any topic you're
learning about.
 
{% endblock content %}
Сравнивая этот файл с исходной версией 
index .html
, мы видим, что заголовок 
Learning Log заменен кодом наследования от родительского шаблона 

. В первой 
строке дочернего шаблона должен находиться тег 
{%
extends
%}
, который сообщает 
Django, от какого родительского шаблона он наследует. Файл 
base .html
является 
частью 
learning_logs
, поэтому 
learning_logs
включается в путь к родительскому 
шаблону. Эта строка извлекает все содержимое из шаблона 
base .html
и позволяет 
index .html
определить, что должно попасть в пространство, зарезервированное 
блоком 
content
.
Блок 
content
определяется в точке 

вставкой тега 
{%
block
%}
с именем 
content

Все, что не наследуется от родительского шаблона, попадает в блок 
content

В данном случае это абзац с описанием проекта Learning Log. В точке 

мы 
сообщаем о том, что определение 
content
завершено, при помощи тега 
{%
endblock
content
%}
.
Вероятно, вы уже начинаете понимать преимущества наследования шаблонов: в до-
черний шаблон достаточно включить информацию, уникальную для этой страницы. 
Такой подход упрощает не только каждый шаблон, но и изменение сайта. Чтобы 
изменить элемент, общий для многих страниц, достаточно изменить элемент в ро-
дительском шаблоне. Внесенные изменения будут автоматически перенесены на 
каждую страницу, наследующую от этого шаблона. В проекте из десятков и сотен 
страниц такая структура значительно упрощает и ускоряет доработку сайта.


Достарыңызбен бөлісу:
1   ...   238   239   240   241   242   243   244   245   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет