【问题标题】:How to send json object to html page in webapp2?如何将 json 对象发送到 webapp2 中的 html 页面?
【发布时间】:2015-10-20 06:04:47
【问题描述】:

我通过查询从数据库中获取所有数据并转换为 JSON 对象。此 JSON 对象数据需要显示在 html 页表上。

如何使用 webapp2 框架将 JSON 对象发送到 html 页面?

例如:

self.response.headers['Content-Type'] = 'application/json'   
        obj = {
        'success': 'some var', 
        'payload': 'some var'
              } 

self.response.out.write(obj) 即 json 对象需要发送到 html 页面以显示输出。

【问题讨论】:

  • 您可以在前端使用 ajax 获取 json 以使用 Handlebars.js/Mustache.js/whatever 进行渲染,也可以通过将 json 传递给您的 jinja2 在后端渲染模板(或任何你正在使用的)模板。您需要展示您尝试过的方法以及遇到的具体问题以获得更多帮助。

标签: python json webapp2


【解决方案1】:

根据您提供的信息,您可以通过两种方式执行此操作。

1) 使用网页中的 JavaScript(或 JS 库,例如 jQuery)从服务器获取 JSON 对象。此选项与您的问题最匹配,因为您将 application/json 值用于您的 content-type 响应标头。但是,您还需要使用 json module 将 Python 字典序列化为与 JSON 兼容的字符串,如下所示:

self.response.out.write(json.dumps(obj))

2) 将 JSON 对象作为 JavaScript 可以读取的变量呈现到您的网页中。这是与您提供的代码最不兼容的,因为您仍将呈现 HTML 页面,但其中一部分将包含与 JSON 兼容的字符串。它可能类似于以下内容:

self.response.headers['content-type'] = 'text/html'

response_body = """
<html>
<script>(function() {
  yourJsonParseFn("%s");
}())</script>
</html>
""" % json.dumps(obj)

self.response.out.write(response_body)

无论哪种方式,您最终都会将 JSON 对象提供给您的网页以供 JavaScript 处理。

【讨论】:

  • 太棒了!不要忘记将此答案标记为正确,以便其他人可以参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 2021-12-08
  • 1970-01-01
相关资源
最近更新 更多