首頁 >web前端 >js教程 >從 Jinja 模板渲染 JSON 資料時,為什麼我的 JavaScript 會出現語法錯誤?

從 Jinja 模板渲染 JSON 資料時,為什麼我的 JavaScript 會出現語法錯誤?

Susan Sarandon
Susan Sarandon原創
2024-12-11 21:37:10349瀏覽

Why Does My JavaScript Get a SyntaxError When Rendering JSON Data from a Jinja Template?

JavaScript 在Jinja 範本中渲染的資料引發語法錯誤

簡介

當將JSON 資料從Flask 路由傳遞到Jinja 範本時,瀏覽器可能會拋出語法錯誤:意外的標記“&”。渲染資料時需要屬性名稱。了解如何在 JavaScript 中處理渲染的 JSON 資料對於成功處理模板至關重要。

轉義與 JSON 渲染

Flask 的 Jinja 環境會自動轉義 HTML 範本中渲染的資料以防止安全漏洞。對於需要被視為 JSON 的數據,Flask 提供了 tojson 過濾器,它將數據轉儲為 JSON 並將其標記為安全。使用 tojson 過濾器可確保資料在不轉義的情況下呈現,使其能夠在 JavaScript 中正確解析。

或者,在較舊的Flask 版本中,安全過濾器可用於標記資料安全:

使用安全過濾器

如果資料已經轉儲為JSON,安全過濾器可用於將其標記為安全渲染而無需轉義:

將JSON 字串包裝在Markup 中也相當於使用安全過濾器:

在Jinja 中使用Python 資料

如果資料沒有被傳遞到JavaScript 但在Jinja 中使用,可以省略 JSON 渲染,直接使用 Python 資料:

以上是從 Jinja 模板渲染 JSON 資料時,為什麼我的 JavaScript 會出現語法錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn