Comment comme « Safe » dans une vue de marquer des chaînes que vous (ou le modèle) dans Jinja2?
-
13-09-2019 - |
Question
En général, lorsque vous voulez marquer la sortie de chaîne en sécurité dans Jinja2 vous faites quelque chose comme ceci:
{{ output_string|safe() }}
Cependant, si output_string est toujours en toute sécurité? Je ne veux pas me répéter chaque fois en utilisant le filtre de sécurité.
J'ai un filtre personnalisé appelé « emailize » qui preps urls pour la sortie dans un courriel. Les esperluette semblent toujours devenir échappé. Est-il possible dans mon filtre personnalisé pour marquer la sortie en sécurité?
La solution
Utilisez la classe Markup :
class jinja2.Markup ([string])
marque une chaîne comme étant sans danger pour l'inclusion dans la production HTML / XML sans avoir besoin d'être échappé.
Autres conseils
Vérifier SafeString , comme par exemple:
from django.utils.safestring import SafeString
...
return context.update({
'html_string': SafeString(html_string),
})