Ответ 1
например.
{{ user.username|e }}
Протяните его через фильтр |e
Jinija: Документация дизайнера шаблонов → Встроенные фильтры: Escape
Как я могу html-escape опасный unsanitized вход в jinja2?
Могу ли я сделать это внутри шаблона или это нужно сделать в коде python?
У меня есть переменная, которая может содержать символы da <ngero> u & s. Как избежать этого в jinja2
например.
{{ user.username|e }}
Протяните его через фильтр |e
Jinija: Документация дизайнера шаблонов → Встроенные фильтры: Escape
Вы также можете указать окружению autoescape все:
e = Environment(loader=fileloader, autoescape=True)
Примечание: в jinja1 это auto_escape
Если вы хотите избежать html в своей программе, вы можете сделать это, как это (пример):
>>> 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>'
Флажок имеет встроенный фильтр tojson
: