Есть ли в дзиндзя способ отобразить блок на определенной странице?

#python #flask #jinja2

Вопрос:

У меня есть layout.html страница с a lt;footergt; , которую я хочу отображать почти на всех используемых страницах {% extends "layout.html %} . Только на странице профиля пользователя нижний колонтитул будет другим. Как я могу это сделать?

Ответ №1:

Вы можете реализовать блок нижнего колонтитула на странице макета и соответствующим образом переопределить его:

 {# layout.html #} ...  lt;div class="container"gt;  ...  {% block app_content %}{% endblock %}   {# block exists for all child templates #}  {% block footer %}{% endblock %}  lt;/divgt; ...  
 {# profile.html #} {% extends "layout.html" %}  {# the footer will automatically be placed inside container #} {# you can override app_content for the body #} {% block app_content %}...{% endblock %} {% block footer %}{% include "profile_footer.html" %}{% endblock %}  
 {# footer.html #} {# won't be included in profile.html #} lt;footergt;my footerlt;/footergt;  
 {# profile_footer.html #} {# will be included in profile.html #} lt;footergt;profile footerlt;/footergt;  

Для любой страницы, нижний колонтитул которой вам не нужен, просто опустите блок