post申请报文中既能够传data,也能够传json。并且data与json,既能够是str类型,也能够是dict类型。
json与data参数规定:
一、JSON
1.应用json参数,不论报文是str类型,还是dict类型,如果不指定headers中content-type的类型,默认是:application/json。
二、DATA
1.应用data参数,报文是dict类型,如果不指定headers中content-type的类型,默认application/x-www-form-urlencoded,相当于一般form表单提交的模式,会将表单内的数据转换成键值对,此时数据能够从request.POST外面获取,而request.body的内容则为a=1&b=2的这种键值对模式。
留神:即便指定content-type=application/json,request.body的值也是相似于a=1&b=2,所以并不能用json.loads(request.body.decode())失去想要的值。
2. 应用data参数,报文是str类型,如果不指定headers中content-type的类型,默认application/json。
综上所述,两种参数的应用状况:
用data参数提交数据时,request.body的内容则为a=1&b=2的这种模式,用json参数提交数据时,request.body的内容则为'{"a": 1, "b": 2}'的这种模式