Как пометить строки как «безопасные» в представлении (или шаблоне) в Jinja2?
-
13-09-2019 - |
Вопрос
Обычно, когда вы хотите пометить вывод строки как безопасный в Jinja2, вы делаете что-то вроде этого:
{{ output_string|safe() }}
Однако что, если выходная_строка всегда безопасный?Я не хочу каждый раз повторяться, используя безопасный фильтр.
У меня есть специальный фильтр под названием «emailize», который подготавливает URL-адреса для вывода в электронном письме.Амперсанды всегда кажутся экранированными.Есть ли в моем пользовательском фильтре способ пометить вывод как безопасный?
Решение
Использовать Разметка сорт:
класс jinja2.Markup([строка])
Помечает строку как безопасную для включения в выходные данные HTML/XML без необходимости экранирования.
Другие советы
Проверять Сафестринг, например:
from django.utils.safestring import SafeString
...
return context.update({
'html_string': SafeString(html_string),
})
Не связан с StackOverflow