I know the flask function render_template
. I have to give the file name of the template. But now I want to render the string of a template (that is the content of the template). That makes sense. but I don't want to explain now why. How can I render the text of a template simply?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You can use render_template_string
:
>>> from flask import render_template_string
>>> render_template_string('hello {{ what }}', what='world')
'hello world'
回答2:
you can use from_string
template = "text {{ hello }}"
print app.jinja_env.from_string(template).render(hello='Hello')
>> text Hello
回答3:
Actually you can call jinja2 render function directly:
jinja2.Template("I am {{ var }}").render(**kargs)
When not working with flask, this is useful
回答4:
Taken from What's the easiest way to escape HTML in Python.
import cgi
rendered = render_template('template.html')
return cgi.escape(rendered)