gpt4 book ai didi

python - 从 Jinja2 模板中获取变量列表(父子)

转载 作者:行者123 更新时间:2023-11-28 16:21:22 24 4
gpt4 key购买 nike

我正在尝试从 Jinja2 模板中获取变量列表。

测试1.j2:

some-non-relevant-content
{{var1}}
{% include 'test2.j2' %}

test2.j2:

another-text
{{var2}}

我可以轻松地从 test1 获取变量:

env = Environment(loader=FileSystemLoader(searchpath='./Templates'))
src_t = env.loader.get_source(env, 'test1.j2')[0]
parsed_t = env.parse(source=src_t)
t_vars = meta.find_undeclared_variables(ast=parsed_t)

问题是,我只能使用 get_source 从父模板中获取变量。显然,我也不能将类模板对象提供给解析方法。

有没有办法建立完整的列表? {'var1', 'var2'} 在我的例子中。理想情况下使用 Jinja2 API。最少的自定义代码。

最佳答案

找到了一种编写代码的方法,而且没有太大的痛苦。meta.find_referenced_templates 有助于在递归应用时加载所有子模板。完成后,从单个列表中的所有模板获取变量就很简单了。

关于python - 从 Jinja2 模板中获取变量列表(父子),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40064867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com