Jinja2: variáveis de escape html
Pergunta
Como faço para uma contribuição não manittada perigosa html-escape no Jinja2?
Posso fazer isso dentro do modelo ou deve ser feito no código Python?
Eu tenho uma variável que pode conter Dau003Cngero> u & s chars. Como faço para escapar em Jinja2
Solução
por exemplo
{{ user.username|e }}
Vá através do |e
filtro
Jinija: documentação do designer de modelos -> Filtros construídos: Escape
Outras dicas
Você também pode dizer ao meio ambiente para criar tudo:
e = Environment(loader=fileloader, autoescape=True)
Nota: em Jinja1, isso é auto_escape
Se você deseja escapar do HTML em seu programa, pode fazer assim (exemplo):
>>> import jinja2
>>> jinja2.__version__
'2.6'
>>> a
'<script>alert("yy")</script>'
>>> jinja2.escape(a)
Markup(u'<script>alert("yy")</script>')
>>> str(jinja2.escape(a))
'<script>alert("yy")</script>'
Flask tem um embutido tojson
filtro:
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow