2009-10-12 3 views
16

jinja2에서 위험한 unsanitized 입력을 어떻게 html로 이스케이프 처리합니까?jinja2 : html 이스케이프 변수

템플릿 내에서 처리 할 수 ​​있습니까? 아니면 파이썬 코드로 처리해야합니까?

나는 변수가있어 <ngero> u & 문자가 포함될 수 있습니다. jinja2에서 어떻게 탈출합니까?

답변

28

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

참고 : 또한 모든 autoescape하는 환경을 말할 수

Jinija: Template Designer Documentation -> Builtin Filters: Escape

+0

, http://jinja.pocoo.org 사용/docs/templates /? highlight = pipe % 20safe # html-escaping –

+0

그리고 다시 깨졌습니다. http://jinja.pocoo.org/docs/dev/templates/#builtin-filters – silpol

14

|e 필터를 통해

{{ user.username|e }} 

파이프는 jinja1이는 auto_escape

4

입니다 당신이 요에서 HTML을 탈출하고 싶다면 UR 프로그램, 당신이 (예)처럼 작업을 수행 할 수 있습니다

>>> 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;' 
관련 문제