Rumah > hujung hadapan web > tutorial js > Bagaimana Menggunakan Data JSON dengan Selamat daripada Templat Jinja Flask dalam JavaScript?

Bagaimana Menggunakan Data JSON dengan Selamat daripada Templat Jinja Flask dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-12-13 06:10:11
asal
918 orang telah melayarinya

How to Safely Use JSON Data from Flask's Jinja Templates in JavaScript?

Cara Menggunakan Data JSON yang Diberikan dalam Templat Jinja dengan JavaScript

Dalam Flask, apabila menghantar data dari laluan ke templat Jinja, automatik melarikan diri didayakan untuk mengelakkan kelemahan keselamatan. Walau bagaimanapun, ini boleh menyebabkan masalah apabila cuba menggunakan data sebagai JSON dalam JavaScript.

SyntaxError: Token Tidak Dijangka '&'

Apabila cuba menggunakan data yang diberikan dengan JSON.parse, ralat "SyntaxError: Token tidak dijangka '&'" berlaku kerana Jinja melarikan diri daripada aksara "&" dalam output.

Menggunakan Penapis tojson

Untuk menyelesaikan masalah ini, Flask menyediakan penapis tojson yang membuang data dengan selamat sebagai JSON dan menandakannya sebagai selamat untuk pemaparan:

return render_template('tree.html', tree=tree)
Salin selepas log masuk
Salin selepas log masuk
<script>var tree = {{ tree|tojson }};</script>
Salin selepas log masuk

Gelagat Kelalang Terdahulu dan selamat Penapis

Versi lama Flask tidak menandakan data yang dibuang sebagai selamat, jadi pendekatan berikut telah digunakan:

<script>var tree = {{ tree|tojson|safe }};</script>
Salin selepas log masuk

Walau bagaimanapun, ini tidak lagi diperlukan.

Pendekatan Alternatif Tanpa JSON

Jika anda tidak menghantar data ke JavaScript tetapi menggunakannya dalam Jinja, anda boleh menghantar data Python asal tanpa memanggil tojson:

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

Pilihan Lain

  • Penapis selamat: Menandai data sebagai selamat untuk dipaparkan tanpa melarikan diri.
  • Pembungkus Markup: Membungkus rentetan dalam Markup untuk mencapai kesan yang sama seperti penapis selamat.

Atas ialah kandungan terperinci Bagaimana Menggunakan Data JSON dengan Selamat daripada Templat Jinja Flask dalam JavaScript?. 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