2009-10-12 4 views
16

как мне html-escape опасный unsanitized вход в jinja2?jinja2: html escape-переменные

Могу ли я сделать это внутри шаблона или его нужно сделать в коде 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;' 
Смежные вопросы