91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

弥渡县| 茂名市| 库尔勒市| 常山县| 岳普湖县| 松潘县| 梁平县| 信宜市| 南充市| 开封县| 杭锦旗| 文化| 合江县| 婺源县| 樟树市| 观塘区| 高雄市| 莆田市| 吐鲁番市| 敦煌市| 陆丰市| 裕民县| 德清县| 济源市| 资源县| 清水县| 鄂托克前旗| 古田县| 潜山县| 秭归县| 磐安县| 永丰县| 镶黄旗| 永嘉县| 霍州市| 皮山县| 永胜县| 宜宾县| 鞍山市| 天峻县| 诸城市|