Вы должны создать файлы шаблонов с {% macro -%}
s и использовать {% import "file" as file %}
, чтобы использовать макросы в других файлах шаблонов.См. документы.
Вот пример:
<!- in common_macros.html ->
{% macro common_idiom1(var1, var2, ... varN) -%}
<!- your idiom, where you can use var1 through varN ->
{%- endmacro %}
<!- in my_template.html ->
{% import "common_macros.html" as idioms %}
{{ idioms.common_idiom1(a, b, ... N) }}
В частности, этот ответ позволяет оператору передавать аргументы своим макросам, подобно поведению, которое он желал, например:как работает render_template (простое включение файла, как было сказано выше в предыдущих ответах, не приводит к тому же поведению, что и render_template).
Обычно это лучше, чем создавать новый шаблон для каждой идиомы или использовать наследование,решение для особого случая (что если вы хотите использовать фрагмент в одном шаблоне несколько раз)?