2009-10-12 123 views
16

我如何在jinja2中跳過危險的unsanitized輸入?jinja2:html轉義變量

我可以在模板內部執行它,還是必須在Python代碼中完成?

我有一個變量,可能包含da <ngero> u & s chars。我如何在jinja2中逃脫它

回答

14

你也可以告訴環境autoescape一切:

e = Environment(loader=fileloader, autoescape=True) 

注:在jinja1這是auto_escape

4

如果你想在喲中轉義html烏爾程序,你可以像下面這樣做(例如):

>>> import jinja2 
>>> jinja2.__version__ 
'2.6' 
>>> a 
'<script>alert("yy")</script>' 
>>> jinja2.escape(a) 
Markup(u'&lt;script&gt;alert(&#34;yy&#34;)&lt;/script&gt;') 
>>> str(jinja2.escape(a)) 
'&lt;script&gt;alert(&#34;yy&#34;)&lt;/script&gt;'