如何从Ajax到Python flask提取数组数据?

时间:2019-07-04 04:25:33

标签: javascript python jquery ajax flask

我在提取从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.

我希望以其形式获取数据,例如我要传递电子邮件列表的地方,我需要将它们作为列表。在有单个字符串值的地方,我应该将它们作为单个字符串值。

非常感谢您的宝贵时间。如果可以的话,请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要使用request.args.getlist

emails = request.args.getlist('Email')