Rumah >hujung hadapan web >tutorial js >Mengapa JavaScript Saya Mendapat SyntaxError Semasa Memaparkan Data JSON daripada Templat Jinja?
Apabila menghantar data JSON dari laluan Flask ke templat Jinja, penyemak imbas mungkin buang SyntaxError: Token '&' yang tidak dijangka. Menjangkakan nama sifat semasa memaparkan data. Memahami cara mengendalikan data JSON yang diberikan dalam JavaScript adalah penting untuk pengendalian templat yang berjaya.
Persekitaran Jinja Flask secara automatik melepaskan data yang diberikan dalam templat HTML untuk mengelakkan kelemahan keselamatan. Untuk data yang perlu dianggap sebagai JSON, Flask menyediakan penapis tojson, yang membuang data ke JSON dan menandakannya sebagai selamat. Menggunakan penapis tojson memastikan bahawa data dipaparkan tanpa melarikan diri, membolehkan ia dihuraikan dengan betul dalam JavaScript.
tree = get_nodes("Root") return render_template("folder.html", data=tree|tojson)
var tree = {{ tree|tojson }};
Sebagai alternatif, dalam versi Flask yang lebih lama, penapis selamat boleh digunakan untuk menandakan data sebagai selamat:
var tree = {{ tree|tojson|safe }};
Jika data sudah telah dibuang ke JSON, penapis selamat boleh digunakan untuk menandainya sebagai selamat untuk dipaparkan tanpa melarikan diri:
return render_template('tree.html', tree=json.dumps(tree))
var tree = {{ tree|safe }};
Membungkus rentetan JSON dalam Markup juga sama dengan menggunakan penapis selamat:
return render_template('tree.html', tree=Markup(json.dumps(tree)))
var tree = {{ tree }};
Jika data tidak dihantar ke JavaScript tetapi digunakan dalam Jinja, anda boleh meninggalkan pemaparan JSON dan menggunakan data Python secara langsung:
return render_template('tree.html', tree=tree)
{% for item in tree %} <li>{{ item }}<li> {% endfor %}
Atas ialah kandungan terperinci Mengapa JavaScript Saya Mendapat SyntaxError Semasa Memaparkan Data JSON daripada Templat Jinja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!