2009-10-12 33 views
16

làm cách nào để tôi loại bỏ html khỏi đầu vào không an toàn nguy hiểm trong jinja2?jinja2: biến số thoát html

Tôi có thể làm điều đó bên trong mẫu hoặc phải được thực hiện trong mã python không?

Tôi có một biến có thể chứa các ký tự da <ngero> u & s. Làm cách nào để thoát khỏi nó trong jinja2

Trả lời

14

Bạn cũng có thể nói môi trường để autoescape tất cả mọi thứ:

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

lưu ý: trong jinja1 đây là auto_escape

4

Nếu bạn muốn thoát khỏi html trong yo chương trình ur, bạn có thể làm điều đó như thế này (ví dụ):

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