首页 > 解决方案 > jinja2 模板 .generate() 与 .render() 方法

问题描述

Template.generate()考虑使用方法的以下实现:

from jinja2 import Template

template_data = '''\
{%- for variable in range(1, 3) -%}
foo{{ variable }}bar
{% endfor %}
'''

template = Template(template_data)
for rendered in template.generate():
    print(rendered)

输出:

foo
1
bar

foo
2
bar

请注意,Template.generate()方法的行为Template.render()

from jinja2 import Template

template_data = '''\
{%- for variable in range(1, 3) -%}
foo{{ variable }}bar
{% endfor %}
'''

template = Template(template_data)
rendered = template.render()
print(rendered)

输出:

foo1bar
foo2bar

为什么Template.generate()方法是在jinja2 的打印语句newline 之前之后添加一个?可以通过Enviroment选项配置此行为吗?我在这里错过了什么吗?

标签: pythonpython-3.xjinja2

解决方案


推荐阅读