Heim > Backend-Entwicklung > Python-Tutorial > Wie vermeide ich JavaScript-Syntaxfehler bei der Verwendung von Jinja-gerenderten JSON-Daten aus Flask?

Wie vermeide ich JavaScript-Syntaxfehler bei der Verwendung von Jinja-gerenderten JSON-Daten aus Flask?

Barbara Streisand
Freigeben: 2024-12-26 12:19:10
Original
289 Leute haben es durchsucht

How to Avoid JavaScript SyntaxErrors When Using Jinja-Rendered JSON Data from Flask?

JavaScript SyntaxError with Jinja-Rendered Data

Problem:

Beim Übergeben von JSON-Daten von Flask an eine Jinja-Vorlage rendert JavaScript, JSON.parse() schlägt mit a fehl SyntaxError.

Grundlegende Ursache:

Flask maskiert in HTML-Vorlagen gerenderte Daten, um Sicherheitslücken zu vermeiden, die sich auf JSON-Daten in JavaScript auswirken.

Lösung:

Verwenden Sie den Tojson Filter:

Der Tojson-Filter von Flask konvertiert Python-Objekte in sicheres JSON und markiert die Daten als sicher für das Rendern:

return render_template("tree.html", tree=tree)
Nach dem Login kopieren
Nach dem Login kopieren
var tree = {{ tree|tojson }};
Nach dem Login kopieren

Alternative Optionen:

  • sicherer Filter oder Markup-Wrapping: Wenn die Daten bereits JSON, verwenden Sie den sicheren Filter oder packen Sie ihn in Markup ein.
return render_template("tree.html", tree=Markup(json.dumps(tree)))
Nach dem Login kopieren
var tree = {{ tree }};
Nach dem Login kopieren
  • Direkte Python-Daten: Wenn die Daten nicht für JavaScript gedacht sind, Verwenden Sie die Python-Daten direkt in der Vorlage ohne JSON-Konvertierung.
return render_template("tree.html", tree=tree)
Nach dem Login kopieren
Nach dem Login kopieren
{% for item in tree %}
    <li>{{ item }}<br /></li>
{% endfor %}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie vermeide ich JavaScript-Syntaxfehler bei der Verwendung von Jinja-gerenderten JSON-Daten aus Flask?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage