Возможность совместного использования общих фрагментов HTML, таких как верхние и нижние колонтитулы, область входа в систему, боковые панели и т. Д., Является очень распространенным требованием. Шаблонные движки обычно предоставляют средства для этого.
Если вы используете Мако, вот два основных механизма, которые вы можете использовать:
Включает
Проверьте тег <% include> . В вашем шаблоне страницы вы указываете, где будут размещаться различные биты многократного использования. Вы как бы создаете страницу с нуля, собираете ее из имеющихся у вас повторно используемых компонентов.
Пример из документации Мако:
<%include file="header.html"/>
hello world
<%include file="footer.html"/>
Наследование
Проверьте тег <% наследовать> . Это работает аналогично наследованию в языках программирования, таких как Python. В базовом шаблоне вы настраиваете каркас страницы. В шаблонах страниц вы настраиваете и расширяете некоторые части базового шаблона.
Быстрый пример, base.mako
:
<html>
<head></head>
<body>
${self.header()}
${self.body()}
</body>
</html>
<%def name="header()">
This is the common header all pages will get unless
they override this.
</%def>
А somepage.mako
:
<%inherit file="/base.mako"/>
This content will go into body of base.
Движки шаблонов обычно имеют множество отличных функций, и я призываю вас лучше узнать их!