как мне html-экранировать опасный неанизированный ввод в jinja2?
Могу ли я сделать это внутри шаблона или это должно быть сделано в коде Python?
У меня есть переменная, которая может содержать символы da u & s. Как мне избежать этого в jinja2
1001 *, например *
{{ user.username|e }}
Пропустите через фильтр |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 фильтр:
tojson
http://flask.pocoo.org/docs/templating/#standard-filters