【发布时间】:2021-01-31 15:17:12
【问题描述】:
我有一个用例,我想在 jinja2 模板中获取未引用变量的列表。 我在stackoverflow上找到了一些关于如何做到这一点的解释,但这些例子中没有一个使用文件作为模板,我非常非常卡住
这是我的代码。第 8 行和第 9 行可以省略,ofc。
import jinja2
from jinja2 import meta
env = jinja2.Environment(loader=jinja2.FileSystemLoader(searchpath="./"))
template_file = "testfile.txt"
template = env.get_template(template_file)
data = dict(foo='foo', bar='bar')
print(template.render(data))
data = dict(foo='foo')
test = env.parse(data, template)
print(meta.find_undeclared_variables(test))
这里是'testfile.txt'的内容
this should print foo:{{foo}}
this should print bar:{{bar}}
这是我的输出
this should print foo:foo
this should print bar:bar
set()
我想得到的输出是集合中的字符串“bar” 如下所示,因为 'data' 字典中没有引用 'bar'。
this should print foo:foo
this should print bar:bar
set('bar')
任何解决此问题的帮助将不胜感激
【问题讨论】:
-
嗨..不是真的..那篇文章不处理存储在文件中的模板。不过谢谢你的建议。