web-dev-qa-db-ja.com

Python Flask render_templateのような変数からテキストをレンダリングする

flask function render_template。テンプレートのファイル名を指定する必要があります。しかし今、私はテンプレートの文字列(つまり、テンプレートのコンテンツ)をレンダリングしたいと思います。それは理にかなっている。しかし、今はその理由を説明したくありません。テンプレートのテキストを簡単にレンダリングするにはどうすればよいですか?

21
Faminator

render_template_string

>>> from flask import render_template_string
>>> render_template_string('hello {{ what }}', what='world')
'hello world'
42
ThiefMaster

from_string を使用できます

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

>> text Hello
2
r-m-n

実際には、jinja2レンダー関数を直接呼び出すことができます。

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

フラスコを使用しない場合、これは便利です

2
duan

PythonでHTMLをエスケープする最も簡単な方法は何ですか から取得。

import cgi
rendered = render_template('template.html')
return cgi.escape(rendered)
0
cricket_007