亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django DRF APIView源碼運行的方法是什么

發布時間:2020-08-18 11:58:47 來源:億速云 閱讀:167 作者:小新 欄目:開發技術

小編給大家分享一下Django DRF APIView源碼運行的方法是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

首先寫一個簡單的drf接口

from rest_framework.views import APIView
from rest_framework.response import Response

# 基于drf寫接口,cbv
class DrfTest(APIView):
  def get(self, request,*args,**kwargs):
    print(type(request._request))
    print(type(request))
    print(request.POST)
    print(request.GET)
    response = {'status':100,'errors':None}
    response['users'] = user_list
    return Response(response)

  def post(self,request,*args,**kwargs):
    name = request.data.get('name')
    print(name)
    return HttpResponse('ok')
url(r'DrfTest/',views.DrfTest.as_view()),

通過路由配置 點入查看源碼,首先進入到APIView的as_view的方法中:

Django DRF APIView源碼運行的方法是什么

Django DRF APIView源碼運行的方法是什么

查找dispatch方法:

Django DRF APIView源碼運行的方法是什么

如果自己所定義的class DrfTest(APIView)沒有手擼dispatch的情況下,下一步,找到APIView里的dispatch方法:

Django DRF APIView源碼運行的方法是什么

當中有一個self.initial(request, *args, **kwargs)方法:

Django DRF APIView源碼運行的方法是什么

至此,簡單分析如上:回到最開始定義類的過程:

Django DRF APIView源碼運行的方法是什么

流程總結

  • 請求來了,執行了View類中as_view的view()方法,本質上執行了self.dispatch方法
  • 按順序查找dispatch方法(自己類中,父類中,父父類中...)
  • 在APIView中的dispatch方法中先把原來request封裝進去,變成新的request對象
  • 接下來又執行了三個組件,分別是認證,權限和頻率
  • 如果三個中有一個不滿足,則不繼續執行
  • 再走分發方法,最后返回response出去
  • 即在請求進入視圖函數前加了一些東西,重寫了dispatch方法
     

dispatch方法:

  • 傳入的request是原生的request對象
  • 這個request已經不是原生的request了,但是它內部有個原生的request對象
  • request = self.initialize_request(request, *args, **kwargs)
  • self.initial(request, *args, **kwargs)這里面有權限,認證,頻率

看完了這篇文章,相信你對Django DRF APIView源碼運行的方法是什么有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁波市| 厦门市| 安龙县| 屏东县| 石楼县| 呼玛县| 文水县| 应用必备| 精河县| 潼关县| 柳州市| 炎陵县| 平阴县| 黄大仙区| 叙永县| 高清| 蚌埠市| 贡山| 保德县| 濮阳市| 邢台市| 荣成市| 察隅县| 胶州市| 丰城市| 噶尔县| 丹凤县| 盘山县| 大名县| 大宁县| 台北县| 通渭县| 汉源县| 怀集县| 佛山市| 黑水县| 高安市| 湾仔区| 尉氏县| 南投市| 花垣县|