首先来介绍一下如何传递单一维度的数组
js
let datalist=[1,2,3];
var data_id = {
ids:datalist
};
console.log(datalist);
$.ajax({
type: "POST",
async:true,//设置异步
url: "/canvas",//后端请求
data: data_id,
success: function(res) {
alert('success')
},
error: function (res) {
alert('error')
}
})
flask
在flask中使用request.form.getlist并且参数为’ids[]',而不是表单post请求的request.form.get(),最后在后端得到列表datalist
@app.route('/canvas', methods=['POST','GET'])
def upload():
if request.method == 'POST':
data =request.form.getlist('ids[]')
print("data: ",data)
return render_template('canvas.html')#渲染canvas页面
但是,这种方法只适用于单一维度的数组,如果是多维数组那么getlist会获取到空数组,因此,还是要借助json
多维数组
js
var ids=JSON.stringify(singlePaint);
//这里的singlePaint是一个多维数组,JSON.stringify将其转换为字符串
$.ajax({
type: "POST",
async:true,
url: "/canvas",//后端请求
data: {"ids":ids},
success: function(res) {
alert('success')
},
error: function (res) {
alert('error')
}
})
flask
def upload():
if request.method == 'POST':
data =request.form.getlist("ids")
# getlist会给得到的数据外加上一层[],此时data为一个数组中的字符串
data=eval(data[0])# data[0]得到传递的字符串,去掉两边的“”得到列表
print("data: ",data)
或者直接
def upload():
if request.method == 'POST':
data =request.form.get("ids")# 此时data即为传递的字符串
data=eval(data)#去掉两边的“”得到列表
print("data: ",data)