Persekitaran Jinja Flask secara automatik melepaskan data yang diberikan dalam templat HTML untuk mengelakkan isu keselamatan. Apabila menghantar objek Python untuk dianggap sebagai JSON, adalah penting untuk mengendalikan pelarian ini dengan betul untuk mengelakkan ralat sintaks dalam JavaScript.
Untuk menjadikan objek Python sebagai JSON selamat, gunakan penapis tojson:
return render_template('tree.html', tree=tree)
Dalam templat, gunakan:
var tree = {{ tree|tojson }};
Ini dengan selamat membuang data ke JSON dan menandakannya sebagai selamat untuk mengelakkan melarikan diri.
Jika JSON telah pun telah dibuang ke rentetan, gunakan penapis selamat untuk menandakannya sebagai selamat untuk dipaparkan:
return render_template('tree.html', tree=json.dumps(tree))
Dalam templat, gunakan:
var tree = {{ tree|safe }};
Sebagai alternatif, anda boleh membalut rentetan dalam Markup sebelum membuat persembahan:
return render_template('tree.html', tree=Markup(json.dumps(tree)))
Dalam templat, anda boleh menggunakan nilai sebagai:
var tree = {{ tree }};
Jika anda menggunakan data dalam Jinja dan bukannya menghantarnya ke JavaScript, jangan gunakan tojson. Sebaliknya, hantar data Python secara terus dan gunakannya seperti biasa dalam templat:
return render_template('tree.html', tree=tree)
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan SyntaxErrors JavaScript Apabila Menggunakan Templat Jinja dan Data JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!