Использовать блок кода в нескольких местах в jinja2
у меня есть этот фрагмент html, который нужно использовать во многих местах в шаблонах jinja2:
<div class="usedalot">{{ somevalue }}</div>
например, в template1.HTML-код, template2.формат html. template3.HTML, этот код повторяется в нескольких местах
<!-- template1.html, template2.html. template3.html -->
<div class="usedalot">{{ somevalue }}</div>
......
<div class="usedalot">{{ somevalue }}</div>
....
<div class="usedalot">{{ somevalue }}</div>
......
вместо копирования и вставки есть ли способ использовать этот фрагмент кода в качестве блока? Наследование шаблона jinja2 (с блоками), похоже, не решает эту проблему.
1 ответов
то, что вы ищете называется макрос.
макросы помещаются в отдельные файлы (например, macros.html
).
{% macro usedalot(somevalue) %}
<div class="usedalot">{{ somevalue }}</div>
{% endmacro %}
затем вы можете импортировать макросы в другие шаблоны
{% from 'macros.html' import usedalot %}
а затем использовать их при необходимости
{{ usedalot(1) }}
выводится
<div class="usedalot">1</div>