2009-10-12 58 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;'