例如:name = aa.py.jinja2
{% macro Macro1() -%}
...
{%- endmacro %}
{% macro Macro2() -%}
...
{%-endmacro %}
用Python渲染
loader = PackageLoader(__name__, "")
env = Environment(loader=loader)
template = env.get_template("aa.jnja2")
aa = template.render("Macro1")
如何渲染特定的宏。否则必须为每个宏创建单独的模板
最佳答案
宏与函数类似,都是用来调用的。您可以先导入aa.jinja2
,然后调用其Macro1
函数:
aa = env.from_string('{% import 'aa.jinja2' as aa %}{{ aa.Macro1() }}').render()
关于python - 如果我们在单个 jinja 模板中有多个宏。如何在Python中渲染其中的特定宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60154862/