2009-08-13 8 views
14

En général, lorsque vous voulez marquer la sortie de chaîne en sécurité dans Jinja2 vous faites quelque chose comme ceci:Comment marquer des chaînes comme "Safe" dans une vue (ou le modèle) dans Jinja2?

{{ output_string|safe() }} 

Cependant, si output_string est toujours sûr? 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 prépare les URL pour la sortie dans un email. Les esperluettes semblent toujours s'échapper. Y a-t-il un moyen dans mon filtre personnalisé de marquer la sortie comme sûre?

Répondre

11

Utilisez la classe Markup:

classe 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é.

11

Vérifiez SafeString, comme par exemple:

from django.utils.safestring import SafeString 
... 
return context.update({ 
     'html_string': SafeString(html_string), 
}) 
+1

Cela ne fonctionne pas dans Jinja2 – Greg