我知道你可以在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')