Maison >développement back-end >Tutoriel Python >Comment éviter les erreurs de syntaxe JavaScript lors de l'utilisation de modèles Jinja et de données JSON ?
L'environnement Jinja de Flask échappe automatiquement aux données rendues dans les modèles HTML pour éviter les problèmes de sécurité. Lors du passage d'objets Python à traiter comme JSON, il est essentiel de gérer cet échappement correctement pour éviter les erreurs de syntaxe dans JavaScript.
Pour rendre les objets Python en JSON sécurisé, utilisez le filtre tojson :
return render_template('tree.html', tree=tree)
Dans le modèle, utilisez :
var tree = {{ tree|tojson }};
Ceci en toute sécurité transfère les données dans JSON et les marque comme sûres pour éviter toute fuite.
Si le JSON a déjà été vidé dans une chaîne, utilisez le filtre sécurisé pour le marquer aussi sûr pour le rendu :
return render_template('tree.html', tree=json.dumps(tree))
Dans le modèle, utilisez :
var tree = {{ tree|safe }};
Vous pouvez également envelopper la chaîne dans Markup avant le rendu :
return render_template('tree.html', tree=Markup(json.dumps(tree)))
Dans le modèle, vous pouvez utiliser la valeur comme :
var tree = {{ tree }};
Si vous utilisez les données dans Jinja au lieu de les transmettre à JavaScript, n'utilisez pas tojson. Au lieu de cela, transmettez directement les données Python et utilisez-les normalement dans le modèle :
return render_template('tree.html', tree=tree)
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
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!