请求控制模块:request目标
源代码通道:APIView类的dispatch方式中
request = self.initialize_request(request, *args, **kwargs)
class Test(APIView): def get(self, request, *args, **kwargs): # url拼凑的主要参数 print(request._request.GET) # 二次封裝方式 print(request.GET) # 兼容 print(request.query_params) # 扩展 ,兼容模式最強 return Response('drf get ok') def post(self, request, *args, **kwargs): # # 全部请求方式带上的数据包 print(request._request.POST) # 二次封裝方式 print(request.POST) # 兼容 print(request.data) # 扩展,兼容模式最強,三种传参方式都能够:form-data,urlencoding,json return Response('drf post ok')
汇总
- drf对原生request干了二次封裝,设定request._request相当于原生request
- 原生request目标的特性和方式都能够被drf的request目标立即浏览(兼容)
- drf请求的全部url拼凑参数均被分析到query_params中 ,全部数据包数据信息都被分析到data中
- get请求:url中拼凑的主要参数根据 request.query_params获得
- post请求:全部请求方式所带上的数据包全是根据 request.data获得