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 db.session.commit() 9 10 return "ok for del"
总结:
非数组数据,直接使用 request.form[‘key‘] 获取数据。但是当前台发送的是数组时,需要使用getlist函数和对key加[]来解析,及:request.form.getlist(‘key[]‘)
至于为什么要增加 [] ,我还没找到原因,有知道的朋友,请告知。
时间: 2025-01-31 07:39:57