Python Flask Render Text from Variable like render

2019-01-12 05:44发布

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?

4条回答
迷人小祖宗
2楼-- · 2019-01-12 06:19

you can use from_string

template = "text {{ hello }}"
print app.jinja_env.from_string(template).render(hello='Hello')

>> text Hello
查看更多
一夜七次
3楼-- · 2019-01-12 06:25

Actually you can call jinja2 render function directly:

jinja2.Template("I am {{ var }}").render(**kargs)

When not working with flask, this is useful

查看更多
贼婆χ
4楼-- · 2019-01-12 06:33

You can use render_template_string:

>>> from flask import render_template_string
>>> render_template_string('hello {{ what }}', what='world')
'hello world'
查看更多
We Are One
5楼-- · 2019-01-12 06:35

Taken from What's the easiest way to escape HTML in Python.

import cgi
rendered = render_template('template.html')
return cgi.escape(rendered)
查看更多
登录 后发表回答