2009-10-12 21 views
16

¿cómo puedo escapar html de la entrada no mejorada peligrosa en jinja2?jinja2: variables de escape html

¿Puedo hacerlo dentro de la plantilla o se debe hacer en código python?

Tengo una variable que puede contener da <ngero> u & s chars. ¿Cómo puedo escaparlo en jinja2

Respuesta

14

También podría decir el medio ambiente a autoescape todo:

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

nota: en jinja1 esto es auto_escape

4

Si quieres escapar de html en tu ur programa, usted puede hacerlo de esta manera (ejemplo):

>>> 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;'