我有一个字符串,我想将其视为Jinja模板。我尝试返回字符串,但它按原样发送,Jinja不会渲染它。我不想制作模板文件来使用render_template
进行渲染。如何使用Jinja渲染字符串?
@app.route('/results')
def results():
template = '''<div class="results">
{% for option in options() %}
<p>{{ option }}</p>
{% endfor %}
</div>
'''
return template
答案 0 :(得分:5)
您正在寻找render_template_string
。
flask.render_template_string(source, **context)
使用给定的上下文从给定的模板源字符串中呈现模板。
参数:
- source - 要呈现的模板的源代码
- context - 应该在模板上下文中可用的变量。
from flask import render_template_string
在HTML字符串上调用它来渲染它,然后返回结果。
return render_template_string(template)