、drf的request是在wsgi的request基礎上再次封裝源碼分析
、wsgi的request做爲drf的request一個屬性:_requestspa
、新的request對舊的request作了徹底兼容3d
、新的request對數據解析更規範化:csrf
全部的拼接參數都解析到query_params中,blog
全部數據包數據都被解析到data中繼承
query_params和data屬於QueryDict類型,能夠 .dict() 轉化成原生dict類型 get
一、drf的APIView類:重寫了as_view(),同時他還繼承了View類,主體邏輯仍是調用父類View的as_view()。源碼
2.as_view(),局部禁用了csrf認證 重點:全部繼承drf的基本視圖類APIView的視圖類,都不在作csrf認證校驗it
3.drf的APIView類:重寫了dispatch(),在內部對request進行了二次封裝:self.initialize_request(request, *args, **kwargs)基礎
走drf的Request初始化方法__init__:self._request = request
drf的Request的getter方法__getattr__:先從self._request反射取屬性,沒取到再到drf的request中取
5.核心:request除了能夠訪問原wsgi協議的request全部內容,還能夠訪問 query_params、data,它封裝好了這兩個方法屬性