Je construis un administrateur pour Flask et SQLAlchemy, et je souhaite transmettre le HTML pour les différentes entrées à ma vue en utilisant render_template
. Le cadre de création de modèles semble échapper automatiquement au code HTML, donc tous les <"'> sont convertis en entités HTML. Comment puis-je désactiver cela pour que le HTML s'affiche correctement?
163
userHome.html
, et je voudrais l'utiliserreturn render_template('userHome.html')
, mais il ne s'affiche pas correctement et tous se transforment en entités html dans ma console chrome.trans
étiquette, cela doit être utilisé comme{% trans something=something|safe %}A {{something}} B{% endtrans %}
Vous pouvez également le déclarer HTML à l'abri du code:
Ensuite, transmettez cette valeur aux modèles et ils n'y sont pas obligés
|safe
.la source
À partir de la section docs jinja échappement HTML :
Exemple:
la source
Lorsque vous avez beaucoup de variables qui n'ont pas besoin d'être échappées, vous pouvez utiliser un
autoescape
bloc:la source
Certaines personnes semblent désactiver l' échappement automatique, ce qui comporte des risques de sécurité pour manipuler l'affichage de la chaîne.
Si vous souhaitez uniquement insérer des sauts de ligne dans une chaîne et convertir les sauts de ligne en
<br />
, vous pouvez prendre une macro jinja comme:et dans votre modèle, appelez cela avec
la source