2010-07-08 11 views
86

Ich bin ein Admin für Flask und SQLAlchemy erstellen, und ich möchte den HTML-Code für die verschiedenen Eingaben an meine Sicht mit render_template übergeben. Die Templat Rahmen scheint die HTML automatisch zu entkommen, so dass alle < „'> in HTML-Entitäten umgewandelt werden. Wie kann ich deaktivieren, dass damit die HTML richtig macht?Übergeben von HTML zu Vorlage mit Flask/Jinja2

Antwort

177

der ideale Weg,

{{ something|safe }} 

zu

ist . als Auto Entkommen vollständig ausschalten

+0

hallo @Armin Ronacher, würden Sie bitte mehr erklären und ein Beispiel geben? Vielen Dank. – Samoth

+0

Ich meine, zum Beispiel habe ich eine Datei mit dem Namen 'userHome.html', und ich würde' return render_template ('userHome.html') 'verwenden, aber es wird nicht korrekt dargestellt und alle werden zu ** html -Entitäten ** in meiner Chromkonsole. – Samoth

+0

Im 'trans'-Tag muss das als' {% trans etwas = etwas | sicher%} A {{etwas}} B {% endtrans%} ' – Kangur

70

können Sie erklären, auch aus dem Code es HTML sicher:

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

dann, dass valu passieren e zu den Vorlagen und sie müssen nicht |safe es.

+0

Markup existiert in Jinja2? – iamgopal

+3

Markup ist eine Jinja2-Klasse, ja. Es implementiert eine gemeinsame Schnittstelle, die von vielen Python-Bibliotheken unterstützt wird (leider nicht Django). Sie können auch das sichere Markup-Paket verwenden, das dasselbe Objekt implementiert: http://pypi.python.org/pypi/MarkupSafe –

+0

Dies ist das beste zum Schreiben von benutzerdefinierten Filtern, wenn der Filter einige Markup an die Vorlage übergeben muss. – erjiang

7

Vom jinja docs Abschnitt HTML Escaping:

Wenn die automatische Entkommen alles aktiviert ist standardmäßig mit Ausnahme Werte explizit gekennzeichnet als sicher entkommen. Diese können entweder in der Anwendung oder in der Vorlage mit dem | safe Filter markiert werden.

Beispiel:

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

http://jinja.pocoo.org/docs/dev/templates/#html-escaping – Akairis

Verwandte Themen