python - last - jinja2 declare variable
Pasar HTML a la plantilla usando Flask/Jinja2 (3)
Desde la sección jinja docs HTML Escaping :
Cuando el escapado automático está habilitado, todo se escapa de manera predeterminada excepto para los valores marcados explícitamente como seguros. Esos pueden ser marcados por la aplicación o en la plantilla usando el filtro | safe.
Ejemplo:
<div class="info">
{{data.email_content|safe}}
</div>
Estoy creando un administrador para Flask y SQLAlchemy, y quiero pasar el HTML para las diferentes entradas a mi vista usando render_template
. El marco de plantillas parece escapar automáticamente del html, por lo que todos <"''> se convierten a entidades html. ¿Cómo puedo desactivar eso para que el HTML se muestre correctamente?
También puede declararlo HTML a salvo del código:
from flask import Markup
value = Markup(''<strong>The HTML String</strong>'')
Luego pasa ese valor a las plantillas y no tienen que |safe
.
la forma ideal es
{{ something|safe }}
que apagar por completo el escape automático.