Flask 解析 Web 端 请求 数组
Posted CodingIsBeautiful
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask 解析 Web 端 请求 数组相关的知识,希望对你有一定的参考价值。
Web前台由 javascript 通过Ajax发送POST请求,当请求数据为数组时,Python Flask 做服务器时的解析如下:
js:
1 var ids = []; 2 for (var i = 0; i < row.length; i++) { 3 ids.push(row[i].id); 4 } 5 console.log(\'del:\' + ids); 6 $.ajax({ 7 method: \'POST\', 8 url: \'/dance_del_data\', 9 dataType: \'json\', 10 data: {\'ids\': ids, \'who\': datagridId}, 11 success: function (data) { 12 $(dg).datagrid(\'reload\'); 13 console.log(\'success in ajax.\') 14 }, 15 error: function () { 16 console.log(\'error in ajax.\'); 17 }
18 });
Flask:
1 @app.route(\'/dance_del_data\', methods=[\'POST\']) 2 def dance_del_data(): 3 # if request.has_key(\'ids\'): 4 who = request.form[\'who\'] 5 ids = request.form.getlist(\'ids[]\') 6 for i in ids: 7 db.session.delete(DanceStudent.query.get(i)) 8
9 db.session.commit() 10 11 return jsonify({"msg": "ok for del"})
总结:
非数组数据,直接使用 request.form[\'key\'] 获取数据。但是当前台发送的是数组时,需要使用getlist函数和对key加[]来解析,及:request.form.getlist(\'key[]\')
至于为什么要增加 [] ,我还没找到原因,有知道的朋友,请告知。
以上是关于Flask 解析 Web 端 请求 数组的主要内容,如果未能解决你的问题,请参考以下文章
Flask -- 01. werkzeug请求与响应以及源码的解析