В документации по пирамиде есть хороший учебник по UX:
http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/humans/creatingux/step07/index.html
Одна вещь, которую я заметил, это то, что в учебном пособии они явно устанавливают и распространяют «глобальный макет» в коде (см. Ниже). Я подумал, что это необычно и не нужно, потому что я всегда просто использовал команду load, как показано в документации:
http://chameleon.repoze.org/docs/latest/
Это просто вопрос личных предпочтений или есть реальные преимущества в настройке и использовании «глобального макета» таким образом?
Класс базового представления учебника:
class Layouts(object):
@reify
def global_template(self):
renderer = get_renderer("templates/global_layout.pt")
return renderer.implementation().macros['layout']
Файл шаблона учебного пособия:
<div metal:use-macro="view.global_template">
<div metal:fill-slot="content">
<p>Home page content goes here.</p>
</div>
</div>
Но в моих файлах шаблонов я просто использую:
<div metal:use-macro="load: global_layout.pt">
<div metal:fill-slot="content">
<p>Home page content goes here.</p>
</div>
</div>