1.apiview是rest framework提供的所有檢視的基類,繼承自django的view;2.支援定義的屬性:
authentication_classes 列表或元祖,身份認證類
permissoin_classes 列表或元祖,許可權檢查類
throttle_classes 列表或元祖,流量控制類
3.在apiview中仍以常規的類檢視定義方法來實現get() 、post() 或者其他請求方式的方法。
class
booklistview
(apiview)
:def
get(self, request)
: books = bookinfo.objects.
all(
) serializer = bookinfoserializer(books, many=
true
)return response(serializer.data)
1.繼承自apiview,主要增加了操作序列化器和資料庫查詢的方法2.提供的關於序列化器使用的屬性與方法:
①屬性:
serializer_class 指明檢視使用的序列化器
②方法:
get_serializer_class(self) 返回序列化器類,預設返回serializer_class
get_serializer(self, args, *kwargs) 返回序列化器物件
3.提供的關於資料庫查詢的屬性與方法:
①屬性:
queryset 指明使用的資料查詢集
②方法:
get_queryset(self) 返回檢視使用的查詢集
get_object(self) 返回詳情檢視所需的模型類資料物件
class
bookdetailview
(genericapiview)
: queryset = bookinfo.objects.
all(
) serializer_class = bookinfoserializer
defget(self, request, pk)
:# get_object()方法根據pk引數查詢queryset中的資料物件
book = self.get_object(
) serializer = self.get_serializer(book)
return response(serializer.data)
這五個擴充套件類需要搭配genericapiview父類,因為五個擴充套件類的實現需要呼叫genericapiview提供的序列化器與資料庫查詢的方法在此僅介紹listmodelmixin的用法,其他幾個模擬
class
booklistview
(listmodelmixin, genericapiview)
: queryset = bookinfo.objects.
all(
) serializer_class = bookinfoserializer
defget(self, request)
:# list的方法封裝了查詢集,序列化,返回序列化的過程,可以直接呼叫即可
return self.
list
(request)
# listmodelmixin原始碼參考
class
listmodelmixin
(object):
""" list a queryset.
"""deflist
(self, request,
*args,
**kwargs)
:# 過濾
queryset = self.filter_queryset(self.get_queryset())
# 分頁
page = self.paginate_queryset(queryset)
if page is
notnone
: serializer = self.get_serializer(page, many=
true
)return self.get_paginated_response(serializer.data)
# 序列化
serializer = self.get_serializer(queryset, many=
true
)return response(serializer.data)
日常用的較多,五個子類繼承了各自的擴充套件類和genericapiview,並進一步封裝了get/post/put/delete方法,所以繼承擴充套件類的子類時不用再定義get/post/put/delete方法
class
bookview
(listapiview,createapiview)
: serializer_class = bookserialziers # 指定序列化器
queryset = bookinfo.objects.
all(
)# 所有查詢集
# listapiview原始碼參考
class
listapiview
(mixins.listmodelmixin,genericapiview)
:"""
concrete view for listing a queryset.
"""defget
(self, request,
*args,
**kwargs)
:return self.
list
(request,
*args,
**kwargs)
# createapiview原始碼參考
class
createapiview
(mixins.createmodelmixin,genericapiview)
:"""
concrete view for creating a model instance.
"""defpost
(self, request,
*args,
**kwargs)
:return self.create(request,
*args,
**kwargs)
DRF框架的安裝配置及特點介紹
安裝 pip install djangorestframework配置 1 在settings中註冊 rest framework 2 在settings中自定義drf配置 注 drf配置查詢順序,自定義settings的rest framework配置字典 drf預設settings的defau...
五 Foundation框架中常用類的介紹
nsstring temp nsstring alloc initwithstring test nslog d temp retaincount temp release nslog d temp retaincount 你猜nslog會輸出什麼,是我們想要的testnsstring麼?有興趣的可...
Foundation框架中常用類的介紹 小結1
有興趣的可以在xcode中建立乙個控制台程式,把上面的 複製進去,可以看到確實是我們預期的結果。學習過objective c記憶體管理的肯定就會有疑問了,temp已經釋放了,為什麼str中還能和temp中的字串拼接那?首先還是先看段 眼見為實,可以說明一切。假如你有兩個類person和animal那...