我想动态地包含一个模板文件,但在包含声明中,变量没有出现展开。怎样做最好?
{% for file in files %}
{% include "{{ file }}.txt" %}
{% endfor %}
我得到的错误是
jinja2.exceptions.TemplateNotFound: {{文件}}.txt
下面的代码对我来说是可行的。
我想澄清一下,有一个 "."
可能会产生一个问题,所以最好将整个文件名连同扩展名一起传给jinja2。
双引号的使用不会使变量的值变大,所以它将保持原来的样子,就像 {{ file }}
下面的工作。
from jinja2 import Environment, FileSystemLoader
data = '''
{% for file in files.split(",") %}
{% include file %}
{% endfor %}
'''
template = Environment(loader=FileSystemLoader("templates/")).from_string(data)
msg = template.render(files="1.txt")
print(msg)
输出:
1.txt