Maison > développement back-end > Tutoriel Python > Comment éviter les erreurs de syntaxe JavaScript lors de l'utilisation de données JSON rendues par Jinja à partir de Flask ?

Comment éviter les erreurs de syntaxe JavaScript lors de l'utilisation de données JSON rendues par Jinja à partir de Flask ?

Barbara Streisand
Libérer: 2024-12-26 12:19:10
original
354 Les gens l'ont consulté

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

Erreur de syntaxe JavaScript avec les données rendues par Jinja

Problème :

Lors de la transmission de données JSON de Flask à un modèle Jinja qui rend JavaScript, JSON.parse() échoue avec un SyntaxError.

Cause sous-jacente :

Flask échappe aux données rendues dans les modèles HTML pour éviter les failles de sécurité, affectant les données JSON en JavaScript.

Solution :

Utilisez le tojson Filtre :

Le filtre tojson de Flask convertit les objets Python en JSON sécurisé et marque les données comme sûres pour le rendu :

return render_template("tree.html", tree=tree)
Copier après la connexion
Copier après la connexion
var tree = {{ tree|tojson }};
Copier après la connexion

Options alternatives :

  • Filtre sécurisé ou habillage de balisage : Si les données sont déjà JSON, utilisez le filtre sécurisé ou enveloppez-le dans Markup.
return render_template("tree.html", tree=Markup(json.dumps(tree)))
Copier après la connexion
var tree = {{ tree }};
Copier après la connexion
  • Données Python directes : Si les données ne sont pas destinées à JavaScript, utilisez les données Python directement dans le modèle sans conversion JSON.
return render_template("tree.html", tree=tree)
Copier après la connexion
Copier après la connexion
{% for item in tree %}
    <li>{{ item }}<br /></li>
{% endfor %}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal