2015-10-28 108 views
7

我知道燒瓶功能render_template。我必須提供模板的文件名稱。但現在我想渲染模板的字符串(即模板的內容)。這就說得通了。但我現在不想解釋爲什麼。我怎樣才能簡單地渲染模板文本?Python燒瓶渲染變量的文本像render_template

+0

只要打開模板文件並將其作爲字符串返回。 –

+0

但是,如果我這樣做(我已經安裝了flask-bootstrap擴展)它會給我這些東西:{%extends「bootstrap/base.html」%}等等作爲純文本並且不處理。 – Faminator

+0

這不是你的問題嗎? _ –

回答

17

您可以使用render_template_string

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

可以使用from_string

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

>> text Hello 
+1

因爲他使用的是Flask他可以使用'render_template_string'(從Flask導入) – ThiefMaster

+0

我不能勾選這兩個答案是正確的。你的回答也不錯;) – Faminator

-1

What's the easiest way to escape HTML in Python服用。

import cgi 
rendered = render_template('template.html') 
return cgi.escape(rendered) 
+1

什麼HTML逃避這個問題? – ThiefMaster

+0

這將以字符串形式返回呈現的HTML文件模板。其他答案只是簡單的模板字符串。 @ThiefMaster –

0

其實你可以調用Jinja2的渲染功能直接:

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

,當不採用燒瓶的工作,這是非常有用的