我在提取从Ajax调用发送到python flask后端的数据时遇到问题。
我只能从request.args对象提取key:value字符串对。但是问题是我发送的数据是混合类型的:
例如data:{'data':'stringdata','Email':['abc@example.com','def@example.com'],'checkbox':'[true,true]'}
当我从python模块中的request.args中读取此数据时。我能够获取request.args ['data'],它返回“ stringdata”,但返回其他键,例如request.args ['Email ']我收到错误请求错误。
我已经尝试JSON.stringify
分别为每个项目加上整个数据对象的数据,但是没有一个起作用。
我也尝试过在Ajax调用中设置数据类型和contentType,但仍然没有效果。
$.ajax
({
url: '/abc',
data : {
"data": 'stringdata',
"Email": ['abc@example.com','def@example.com'] ,
"Hbeat":[true,true],
"Creport" : [true,true] ,
"Treport" : [true,true] ,
"Preport" : [true,true]
},
success: function(data)
{
},
complete: function()
{
}
});
这里是我试图获取数据的python部分。
@app.route('/abc', methods=['POST','GET'])
def checkingdata():
print(request.args)
print(request.args['data'])
print(request.args['Email']) # this is where I am getting errors.
我希望以其形式获取数据,例如我要传递电子邮件列表的地方,我需要将它们作为列表。在有单个字符串值的地方,我应该将它们作为单个字符串值。
非常感谢您的宝贵时间。如果可以的话,请帮忙。
答案 0 :(得分:0)
您需要使用request.args.getlist
:
emails = request.args.getlist('Email')