DRF兩個(gè)基類視圖


(1)APIView? ? ? ? ? ? (2)GenericAPIView


1)APIView?

????rest_framework.views.APIView

????APIView是REST framework提供的所有視圖的基類,繼承自Django的View父類。

支持定義的屬性:(這些屬性都是針對(duì)大方向的,?沒(méi)有針對(duì)當(dāng)前視圖)

? ??authentication_classes?列表或元祖,身份認(rèn)證類

? ??permissoin_classes?列表或元祖,權(quán)限檢查類

? ??throttle_classes?列表或元祖,流量控制類

在APIView中仍以常規(guī)的類視圖定義方法來(lái)實(shí)現(xiàn)get() 、post() 或者其他請(qǐng)求方式的方法。

舉例:


2)GenericAPIView

????rest_framework.generics.GenericAPIView

????繼承自APIVIew,增加了對(duì)于列表視圖和詳情視圖可能用到的通用支持方法。通常使用時(shí),可搭配一個(gè)或多個(gè)Mixin擴(kuò)展類。

支持定義的屬性:(這些多出來(lái)的屬性有針對(duì)當(dāng)前視圖的)

????列表視圖與詳情視圖通用:

? ??????queryset?列表視圖的查詢集

? ??????serializer_class?視圖使用的序列化器

????列表視圖使用:

? ??????pagination_class?分頁(yè)控制類

? ??????filter_backends?過(guò)濾控制后端

????詳情頁(yè)視圖使用:

? ??????lookup_field?查詢單一數(shù)據(jù)庫(kù)對(duì)象時(shí)使用的條件字段,默認(rèn)為'pk'

? ??????lookup_url_kwarg?查詢單一數(shù)據(jù)時(shí)URL中的參數(shù)關(guān)鍵字名稱,默認(rèn)與look_field相同

提供的方法:

????列表視圖與詳情視圖通用:

? ??????get_queryset(self)

? ??????返回視圖使用的查詢集,是列表視圖與詳情視圖獲取數(shù)據(jù)的基礎(chǔ),默認(rèn)返回queryset屬性

? ??????get_serializer_class(self)

? ??????返回序列化器類,默認(rèn)返回serializer_class

? ??????get_serializer(self,?args, *kwargs)

? ??????返回序列化器對(duì)象,被其他視圖或擴(kuò)展類使用,如果我們?cè)谝晥D中想要獲取序列化器對(duì)象,可以直接調(diào)用此方法。

注意,在提供序列化器對(duì)象的時(shí)候,REST framework會(huì)向?qū)ο蟮腸ontext屬性補(bǔ)充三個(gè)數(shù)據(jù):request、format、view,這三個(gè)數(shù)據(jù)對(duì)象可以在定義序列化器時(shí)使用。

舉例:


總結(jié):?

? ??如果只是簡(jiǎn)單的查詢數(shù)據(jù)庫(kù)里面的所有數(shù)據(jù),?直接用APIView就可以了,? 當(dāng)然也可以用GenericAPIView

? ??如果要查詢的數(shù)據(jù)是根據(jù)路徑查詢則可以用GenericAPIView

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Request 與 Response RequestREST framework 傳入視圖的request對(duì)象不再...
    LiWei_9e4b閱讀 679評(píng)論 0 0
  • API Reference GenericAPIView This class extends REST fram...
    陽(yáng)光小鎮(zhèn)少爺閱讀 2,722評(píng)論 0 1
  • DRF框架包含序列化器,視圖以及URL視圖,三者密不可分,因此本篇聊的是視圖部分。在django中rest_fra...
    詠遠(yuǎn)瑞智閱讀 866評(píng)論 0 0
  • 基于類的視圖的一個(gè)主要優(yōu)點(diǎn)是它們?cè)试S你組合可重復(fù)使用的行為。 REST框架通過(guò)提供大量預(yù)構(gòu)建視圖來(lái)提供常用模式,從...
    YYL07閱讀 748評(píng)論 0 0
  • 如果選擇純C作為ESP8266的開(kāi)發(fā),有兩個(gè)途徑: 使用樂(lè)鑫官方原生的 RTOS-SDK或者NONOS-SDK 使...
    梁睿坤閱讀 7,909評(píng)論 7 13

友情鏈接更多精彩內(nèi)容