Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengelakkan SyntaxErrors JavaScript Apabila Menggunakan Data JSON yang Dihasilkan Jinja daripada Flask?

Bagaimana untuk Mengelakkan SyntaxErrors JavaScript Apabila Menggunakan Data JSON yang Dihasilkan Jinja daripada Flask?

Barbara Streisand
Lepaskan: 2024-12-26 12:19:10
asal
353 orang telah melayarinya

How to Avoid JavaScript SyntaxErrors When Using Jinja-Rendered JSON Data from Flask?

JavaScript SyntaxError dengan Jinja-Rendered Data

Masalah:

Apabila menghantar data JSON dari Flask ke templat Jinja yang menjadikan JavaScript, JSON.parse() gagal dengan a SyntaxError.

Punca Asas:

Flask melarikan diri data yang diberikan dalam templat HTML untuk mengelakkan kelemahan keselamatan, menjejaskan data JSON dalam JavaScript.

Penyelesaian:

Gunakan Penapis tojson:

Penapis tojson Flask menukar objek Python kepada JSON dan tanda selamat data selamat untuk pemaparan:

return render_template("tree.html", tree=tree)
Salin selepas log masuk
Salin selepas log masuk
var tree = {{ tree|tojson }};
Salin selepas log masuk

Pilihan Alternatif:

  • Penapis atau Pembalut Penanda selamat: Jika data sudah JSON , gunakan penapis selamat atau bungkusnya Penandaan.
return render_template("tree.html", tree=Markup(json.dumps(tree)))
Salin selepas log masuk
var tree = {{ tree }};
Salin selepas log masuk
  • Data Python Langsung: Jika data tidak dimaksudkan untuk JavaScript, gunakan data Python terus dalam templat tanpa penukaran JSON .
return render_template("tree.html", tree=tree)
Salin selepas log masuk
Salin selepas log masuk
{% for item in tree %}
    <li>{{ item }}<br /></li>
{% endfor %}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan SyntaxErrors JavaScript Apabila Menggunakan Data JSON yang Dihasilkan Jinja daripada Flask?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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