我有一个Flask应用程序,允许用户为主Jinja2模板中的某些部分定义模板。 Jinja是否可以从字符串中处理变量?例如,应用程序视图传递以下变量:
report.summary='<p>This is a report for {{ user.first_name }}.</p>'
Jinja模板的相关部分是:
<h1>Summary</h1>
{{ report.summary }}
渲染输出为:
摘要
这是{{user.first_name}}的报告。
Jinja可以处理{{ user.first_name }}
,还是我被迫从烧瓶中自行进行变量替换?
答案 0 :(得分:2)
我认为您可以使用render_template_string
。
report.summary=render_template_string(r'<p>This is a report for {{ user.first_name }}.</p>', user)
文档:http://flask.pocoo.org/docs/0.10/api/#flask.render_template_string
否则,当您可以将用户和报告都传递给模板时,为什么在类字段中包含HTML?