Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengelakkan SyntaxErrors JavaScript Apabila Menggunakan Templat Jinja dan Data JSON?

Bagaimana untuk Mengelakkan SyntaxErrors JavaScript Apabila Menggunakan Templat Jinja dan Data JSON?

Barbara Streisand
Lepaskan: 2024-12-11 11:03:11
asal
180 orang telah melayarinya

How to Avoid JavaScript SyntaxErrors When Using Jinja Templates and JSON Data?

JavaScript menimbulkan SyntaxError dengan data yang diberikan dalam templat Jinja

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.

Menggunakan Penapis tojson

Untuk menjadikan objek Python sebagai JSON selamat, gunakan penapis tojson:

return render_template('tree.html', tree=tree)
Salin selepas log masuk
Salin selepas log masuk

Dalam templat, gunakan:

var tree = {{ tree|tojson }};
Salin selepas log masuk

Ini dengan selamat membuang data ke JSON dan menandakannya sebagai selamat untuk mengelakkan melarikan diri.

Berurusan dengan JSON Pra-Dibuang

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))
Salin selepas log masuk

Dalam templat, gunakan:

var tree = {{ tree|safe }};
Salin selepas log masuk

Menggunakan Markup

Sebagai alternatif, anda boleh membalut rentetan dalam Markup sebelum membuat persembahan:

return render_template('tree.html', tree=Markup(json.dumps(tree)))
Salin selepas log masuk

Dalam templat, anda boleh menggunakan nilai sebagai:

var tree = {{ tree }};
Salin selepas log masuk

Mengelakkan JSON untuk Jinja Gunakan

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)
Salin selepas log masuk
Salin selepas log masuk
{% for item in tree %}
    <li>{{ item }}</li>
{% endfor %}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan