使用 JSON 在 python 和 javascript 之间传递数据

Posted

技术标签:

【中文标题】使用 JSON 在 python 和 javascript 之间传递数据【英文标题】:Passing data between python and javascript using JSON 【发布时间】:2015-04-01 17:31:07 【问题描述】:

我正在创建一个网络表单。根据第一个字段的值,我想在表单的其余部分显示不同的字段。我可以使用 javascript 来更新表单:

document.getElementById("formdata").innerhtml = HTML_string

我正在使用 web.py。我需要的字段列表存储在 MongoDB 中,我正在使用 python 来提取列表。看起来我应该使用 JSON 将数据从 python 传递到浏览器。有很多只提供 JSON 服务的简单示例(例如 https://gist.github.com/sirleech/5055971),以下几乎完全描述了我需要的内容:Passing variables between Python and Javascript。如何在仍呈现完整 HTML 页面的同时将这些数据与 JavaScript 一起使用?有没有人有任何例子可以用来制作一个正常运行的网页?是否可以在字段值更改时调用python脚本并将查询结果传递回浏览器而不刷新页面?

我不确定我正在尝试的方法是否是最好的方法,因此我愿意接受其他建议。

谢谢,

德国

【问题讨论】:

听起来你的问题是如何在浏览器端解压/使用 JSON 数据?通常,这是通过 JavaScript 中的某种 AJAX 请求/回调来完成的。如果您是第一次这样做,我建议您将 AngularJS 或 jQuery 作为抽象出许多特定于浏览器的麻烦的工具。 是的,我想这是我的问题!感谢您的提示,我会尝试找到有关这些的教程,现在我知道我在寻找什么。 【参考方案1】:

通常,JSON 用于提供数据,而不是标记。您通常已经加载了 HTML,并在获取 JSON 数据后立即将其插入到 DOM 元素中。

假设您要更新标记如下的“分数”元素:

<p>My Score: <span id='my_score'></span></p>

为此,假设您的 JSON“分数”提要托管在 /data/score。它像这样返回 JSON:

score: 5

如果您使用的是 jQuery,例如,您可以按如下方式请求和更新此值:

$.get('/data/score', function(data)
    $('#my_score').html(data['score']);
);

但这对您正在使用的内容及其工作方式做出了很多假设。

【讨论】:

好吧,看来这不是一个快速的解决方案。我最好学习 jQuery! @Geraint 是的,异步请求使用模式也需要一些学习。你必须学会​​思考事件和回调,而不是假设一切都以特定的顺序发生。这些东西很快就会变得复杂,如果你真的只是从这里开始,那么学习像 Angular 这样的框架可能是值得的。 angular.codeschool.com

以上是关于使用 JSON 在 python 和 javascript 之间传递数据的主要内容,如果未能解决你的问题,请参考以下文章

我如何解析来自 openlibrary api 的 Json 数据? (适当地)

使用javascript循环读取JSON数字数组[重复]

json

php生成json数组然后javascript显示出来

用于 Javascript/JSON 的 ORM

Django框架详细介绍---AJAX