前端传递参数的方式
1.路径参数
a.在url路径中传递的参数
b.在请求实例方法中,使用关键字参数来接收
2.查询字符串参数
a.url ?后面的key value键值对参数,如:http://www.xxx.com/?key1=value1&key2=value2
b.request.GET获取
c.request.GET返回QueryDict,类似于python中dict类型
d.可以使用['key1']、get('key1'),会返回具体的值,如果有多个相同key的键值对,获取的是最后一个
e.getlist('key1'),获取相同key的多个值,返回list类型
请求体参数
1.json
a.json格式的参数会存放在body中,一般为字节类型
b.json.loads(request.body),返回Python中的数据类型(字典、嵌套字典的列表)
json.loads(request.body)
2.www-form-urlencoded
a.一般在前端页面中使用表单录入的参数
b.request.POST返回QueryDict,类似于python中dict类型
3.file(multipart/data)
a.传递的文本参数可以使用request.POST去提取
b.传递的非文本参数(二进制文件)可以使用request.FILES去提取
c.如果传递纯粹的文件,request.body去提取
请求头参数
a.第一种方式:request.headers['key1']或者.get('key1')
b.第二种方式:request.META['HTTP_AUTHORIZATION']
1)请求头参数的可以被转化为:HTTP_参数名大写
2)如果参数名中含有-,会自动转换为_