【发布时间】:2019-08-28 09:11:14
【问题描述】:
我正在尝试将结构化数据从网页传递到烧瓶处理程序,但我遇到了关键错误。
在网页的 JavaScript 中,我有一个包含两个元素的对象,一个是值,另一个是对象。
问题出在 Flask/Python 方面。我可以通过以下方式获取第一个元素 ("cid"):
print request.form ["cid"]
这行得通。但是,我无法访问或获取任何 att(ribute) 值 ("att")。
所以,这个,request.form ["att"] 返回KeyError: 'att'
我可以访问request.form["att[sw1]"],但这会使我的数据类型变平。
我想将 att 元素作为列表或字典获取,以便在我的应用程序中循环访问它们。我基本上想要request.form["att"]["sw1"] 或request.form.att["sw1"]。
var controllerData = {
sw1 : $('#sw1').val(),
sw2 : $('#sw2').val(),
sw3 : $('#sw3').val(),
sw4 : $('#sw4').val()}
var updateData = {cid : 1, att: controllerData };
$.ajax({
type: "POST",
url: "/SetSettings",
data: updateData,
success: function(d) { },
error: function(d) {alert('Error saving settings!');},
dataType: "json"
});
【问题讨论】:
-
当然,我在发帖后就取得了进步!首先,我必须在网页 javascript: var updateData = {cid : 1, att: JSON.stringify(controllerData) } 中创建我的复合对象,然后在 Flask/Python 端我需要将 att 字符串转换为字典: 属性 = json.loads(request.form["att"])。这解决了它!
标签: javascript python jquery json flask