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



Pdf көрінісі
бет220/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   216   217   218   219   220   221   222   223   ...   238
ПРИМЕЧАНИЕ

В  коде  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   ...   216   217   218   219   220   221   222   223   ...   238




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

    Басты бет