第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將 json 字符串從 python 應(yīng)用程序發(fā)送到 jinja 模板中的 javascript

將 json 字符串從 python 應(yīng)用程序發(fā)送到 jinja 模板中的 javascript

猛跑小豬 2022-06-14 17:51:36
我正在嘗試使用 Web 服務(wù)器上的 Flask 從 python 發(fā)送列表到帶有 jinja 和 javascript 的客戶端。使用 json 應(yīng)該很簡(jiǎn)單。這是我的python代碼:@app.route("/demo")def demo():    basket = [{"fruit": "apple", "amount": 3}, {"fruit": "pear", "amount": 1}, {"fruit": "kiwi", "amount": 2}]    return render_template("demo.html", basket=json.dumps(basket))這是一個(gè)簡(jiǎn)化的代碼,在最終程序中,列表將是數(shù)據(jù)庫(kù)查詢的結(jié)果。jinja模板如下:{% extends "layout.html" %}{% block title %}    Demo{% endblock %}{% block main %}    <script>        console.log('{{ basket }}');        object = JSON.parse('{{ basket }}')    </script>{% endblock %}但是,javascript 返回解析錯(cuò)誤:[{"fruit": "apple", "amount": 3}, {"fruit": "pear", "amount": 1}, {"fruit": "kiwi", "amount": 2}] 演示:1 Uncaught SyntaxError: Unexpected token & in JSON at position 2 at JSON.parse () at demo:54似乎雙引號(hào) " 以某種方式轉(zhuǎn)換為 " 字符的 HTML 代碼 " 。隨后 JSON.parse 無(wú)法處理。嘗試將列表分解為兩個(gè)數(shù)組“fruit”和“amount”,同樣的錯(cuò)誤。我猜客戶端不知道我正在發(fā)送 json 并且我應(yīng)該將 content-type 設(shè)置為 application/json。是這樣嗎?如果是,我應(yīng)該如何以及在哪里執(zhí)行此操作?在 Makozaki 的回答之后更新:將“籃子”作為 python 對(duì)象(而不是 json 對(duì)象)與 jinja for 循環(huán)結(jié)合使用,但前提是您重建單個(gè)元素的數(shù)組:<script>    fruit = [];    {% for item in basket %}        fruit.push('{{ item["fruit"] }}')    {% endfor %}    console.log(fruit)</script>嘗試推送由“fruit”和“amount”組成的項(xiàng)目將再次包含所有轉(zhuǎn)義字符。而且,您必須重新構(gòu)建一個(gè)作為對(duì)象整體傳遞的數(shù)組,這似乎很愚蠢。關(guān)閉自動(dòng)轉(zhuǎn)義也可以,但以一種意想不到的方式:<script>    {% autoescape false %}        object = {{ basket }};    {% endautoescape %}</script>這將準(zhǔn)確返回傳遞的對(duì)象。但有趣的是:你必須省略雙花括號(hào)前后的單引號(hào)?。ㄅc前面的示例相反)謝謝你的靈感!
查看完整描述

1 回答

?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

簡(jiǎn)而言之object|tojson|safe,就是這樣做的方法,例如JSON Support。


<script type=text/javascript>

    doSomethingWith({{ user.username|tojson|safe }});

</script>


查看完整回答
反對(duì) 回復(fù) 2022-06-14
  • 1 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)