Python Flask从字符串而不是模板中呈现响应体



我知道你可以在Flask中从模板文件中渲染视图。

rendered = render_template('pdf/template.html', toPerson=message.to_user, fromPerson=message.from_user, message=message.user_message)

我想知道你如何从字符串呈现而不是提供'pdf/template.html'部分。

我试过下面的方法,但没有成功。

loader = DictLoader({
'template': Template(template_string),
})
env = Environment(loader=loader)
response = env.get_template('template').render(toPerson="The to person", fromPerson="The from person", message="Lorem Ipsum")

我得到一个错误信息

TypeError: Can't compile non - template nodes

提前谢谢你

如果您想使用字符串作为模板而不是加载文件,您可以使用现有Jinja环境的from_string函数。

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
templ_str = '''<h1>Hello {{ name }}</h1>'''
templ = app.jinja_env.from_string(templ_str)
return templ.render(name='John Doe')

相关内容

  • 没有找到相关文章

最新更新