Jinja2 Наследование с блоками и включает

Я не могу понять, как изменять блоки из включенных шаблонов с помощью Jinja2. Вот пример, когда я использую три файла.

base.html:

<html>{% include "content.html" %}</html> 

content.html:

 <h1>{% block title %}Title{% endblock title%}</h1> <div>{% block content_body %}Content Body{% endblock content_body%}</div> 

story.html

 {% extends "base.html" %} {% block title %}story.title{% endblock title %} {% block content_body %}story.description{% endblock content_body %} 

При рендеринге story.html я получу:

 <html> <h1>Title</h1> <div>Content Body</div> </html> 

Как сделать рендер с ожидаемыми значениями?

  • Как удалить запись в Sqlite
  • Получить длину списка в шаблоне jinja2
  • Импортировать модуль Python в шаблон Jinja?
  • Рендеринг шаблона Jinja в Flask после ответа ajax
  • Динамически добавлять поля ввода с помощью wtforms
  • Шаблоны Jinja - форматирование float как запятая
  • Python: Как мне форматировать дату в Jinja2?
  • Вызовите функцию python из jinja2
  • 2 Solutions collect form web for “Jinja2 Наследование с блоками и включает”

    Вы должны смотреть макросы в Jinja2. Я думаю, что этот вопрос SO связан с вашими запросами.

    base.html не отображается, потому что он не вызывается никаким шаблоном. Что вы можете сделать, это второй уровень расширения:

    base.html:

     <html>{% block html %}{% endblock %}</html> 

    content.html:

     {% extends "base.html" %} {% block html %} <h1>{% block title %}Title{% endblock title%}</h1> <div>{% block content_body %}Content Body{% endblock content_body%}</div> {% endblock %} 

    Тем не менее, это, вероятно, base.html , вы, скорее всего, обнаружите, что достаточно одного базового шаблона (т.е. объедините base.html и content.html в один шаблон).

    Interesting Posts

    Что такое замена DateModifierNode в новых версиях Django

    Есть ли эквивалент commit в схеме луковиц для neo4j

    Многоуровневое наследование Python, __init__

    Как я могу выполнить запрос HEAD в библиотеке механизации?

    Локальная конечная точка для DynamoDB Local с Boto3

    python matplotlib обновляет график рассеяния от функции

    Почему разрыв mysql-соединения (ошибка «Потерянное соединение с MySQL-сервером во время запроса»)

    Python: проверьте, является ли какой-либо элемент списка ключевым в словаре

    Определить, имеет ли список последовательные элементы, равные в python

    Поле ReadOnly, сохраненное с NULL значением

    Проблема с протоколом Python ВращениеFileHandler на сайте Django

    Создайте граф из файла CSV и отрисуйте в браузер с помощью Django и библиотеки Pandas Python

    Какой наиболее точный способ отличить один из 8 цветов?

    Вычислить разницу во времени между индексами данных Pandas Dataframe

    OpenCV показывает серое окно

    Python - лучший язык программирования в мире.