Передача HTML в шаблон с помощью Flask/Jinja2

Я создаю администратора для колбы и SQLAlchemy, и я хочу передать HTML для разных входов в мое представление, используя render_template. Структура шаблонов, похоже, автоматически избегает html, поэтому все преобразуются в HTML-объекты. Как я могу отключить это, чтобы HTML отображался правильно?

3 ответов


идеальный способ -

{{ something|safe }}

чем полностью выключение автоматического экранирования.


вы также можете объявить его HTML безопасным из кода:

from flask import Markup
value = Markup('<strong>The HTML String</strong>')

затем передайте это значение шаблонам, и им не нужно |safe его.


из раздела jinja docs HTML Escaping:

когда автоматическое экранирование включено, все экранируется по умолчанию за исключением значений, явно помеченных как безопасные. Те могут быть отмечен приложением или в шаблоне с помощью |safe фильтр.

пример:

 <div class="info">
   {{data.email_content|safe}}
 </div>