gpt4 book ai didi

python - Tornado :将字符串数据传递给渲染页面中的 JavaScript 代码

转载 作者:行者123 更新时间:2023-12-01 09:18:14 25 4
gpt4 key购买 nike

我想将 Python 中的字典数据传递到 index.html 中。 (我在这里使用 Tornado ,但我对其他允许它的小型框架持开放态度。)

我首先使用 json.dumps 序列化数据,这

def start_server():
data = {"a": 1, "b": 3}
string_data = json.dumps(data)

class IndexHandler(tornado.web.RequestHandler):
def get(self):
path = os.path.join(os.path.dirname(__file__), "web")
self.render(os.path.join(path, 'index.html'), data=string_data)
return

app = tornado.web.Application([(r"/", IndexHandler)])
app.listen(8000)
tornado.ioloop.IOLoop.current().start()
return

一起

<script>
console.log("{{data}}");
obj = JSON.parse("{{data}}");
console.log(obj);
</script>

index.html中给了我

{&quot;a&quot;: 1, &quot;b&quot;: 3}

不用说,JSON.parse 会因这些 " 失败。

有任何关于这里出了什么问题的提示吗?

最佳答案

您应该尝试{% raw data %}。但是,请注意,由于您在 Javascript 带引号的字符串中使用字符串,因此“data”本身应该包含适合的内容:并且 json.dumps() 输出无效 - 您需要在代码中适本地转义它调用 .render() 或在模板本身中(后者更好)。也许是这样:

obj = JSON.parse({% raw json_encode(data) %});

(使用字符串值的 json_encode() 将输出“转义数据”这一事实)

关于python - Tornado :将字符串数据传递给渲染页面中的 JavaScript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com