1、前言
最近在使用django开发web页面时,使用ajax的post参数中带有数组,然后在 request.POST
里获取的数组时,数组变成了一个元组!!!官方给出的通过 request.POST.getlist('key')
来获取也是很鸡肉!那要怎么解决呢?
2、问题
问题是这样,在前端js的post请求参数带有数组或字典:
var body = {
'account': account,
'password': password,
'array': [1, 2, 3],
'dict': {'k1': 'v1', 'k2': 'v2'}
};
$.ajax({
url: url,
type: "POST",
data: body,
...
...
});
在django后python解析request.POST,获取数组就变成这样:
如果是这样写:
if request.method == 'POST':
array = request.POST['array']
dict = request.POST['dict']
直接是报错:
raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDictKeyError: 'array'
所以我们要看看 request.POST
到底是什么类型,内容又是什么???
request.POST:
<QueryDict: {'account': ['account'], 'password': ['password'], 'array[]': ['1', '2', '3'], 'dict[k1]': ['v1'], 'dict[k2]': ['v2']}>
QueryDi