如何将字典传递给index.html?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (225)

我希望将字典数据从Python传递到index.html

我首先将数据序列化为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用那些&quots.

对这里出了什么问题有什么暗示吗?

提问于
用户回答回答于

你应该试试{% raw data %}。但是, 由于你在Javascript引用的字符串中使用了字符串,“data”本身应该包含一些适合于此的内容:而且json.dump()输出是无效的-你需要在调用.renf()的代码中或在模板本身中适当地转义它(后者更可取)。也许这个:

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

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

扫码关注云+社区

领取腾讯云代金券