python - 如果我们在单个 jinja 模板中有多个宏。如何在Python中渲染其中的特定宏

标签 python jinja2

例如: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/

相关文章:

python - struct.pack() Python 未知字段长度通过套接字发送

python - 使用字典脚本导入 txt 文件并将其应用于数据框以替换单词

python - 使用 Jinja2 渲染字典或字符串

dictionary - 如何将字典字典转换为 Ansible vars 文件中的字典列表?

python - dockerize 一个 python/jinja2 程序以生成 pdf 文档

php - 在 EOT 中插入带有 PHP 变量的 python 代码

python - 是否可以将 self 传递给外部函数

python - 如何在多个文件中导入常量

python - 如何在 jinja2 中打印一行字典?

python - 我可以将一条路线用于多种功能吗?