一、ListModelMixin
- 提供list(request, *args, **kwargs)方法
- 獲取已存在的列表數據(獲取多條記錄)
- 獲取成功,則返回200 OK
1.引入方式
from rest_framework.mixins import ListModelMixin
2.源碼對比
我們可以發現,兩處的代碼基本一致,因此我們直接拿到使用來優化本地代碼
3.使用方法
a.視圖類繼承ListModelMixin
b.get方法中直接return self.list(request, *args, **kwargs)
def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs)
二、CreateModelMixin
- 提供create(request, *args, **kwargs)方法
- 創建新的模型實例(創建新的記錄)
- 創建成功,返回201 Created
- 如果請求參數有誤,返回400 Bad Request
1.引入方式
from rest_framework.mixins import CreateModelMixin
2.源碼對比
依然也是基本一致
3.使用方法
a.視圖類繼承CreateModelMixin
b.post方法中直接return self.create(request, *args, **kwargs)
def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs)
三、RetrieveModelMixin
- 提供retrieve(request, *args, **kwargs)方法
- 獲取已存在的詳情數據(一條記錄)
- 獲取成功,返回200 OK
- 如果不存在,則返回404 Not Found
1.引入方式
from rest_framework.mixins import RetrieveModelMixin
2.源碼對比
3.使用方法
a.視圖類繼承RetrieveModelMixin
b.get方法中直接return self.retrieve(request, *args, **kwargs)
def get(self, request, *args, **kwargs): return self.retrieve(request, *args, **kwargs)
四、UpdateModelMixin
- 提供update(request, *args, **kwargs)方法,用於全更新
- 提供partail_update(request, *args, **kwargs)方法,用戶部分更新,支持PATCH方法
- 更新已存在的模型實例(更新一條記錄)
- 更新成功,返回200 OK
- 如果請求參數有誤,返回400 Bad Request
- 如果不存在,返回404 Not Found
1.引入方式
from rest_framework.mixins import UpdateModelMixin
2.源碼對比
注:這里有一點不一樣,源碼中有一個‘partial’,這個表示可以進行部分更新,因此update方法不僅支持全更新,也可以支持部分更新
3.使用方法
a.視圖類繼承UpdateModelMixin
b.put方法中直接return self.retrieve(request, *args, **kwargs)
def put(self, request, *args, **kwargs): return self.update(request, *args, **kwargs)
五、DestroyModelMixin
- 提供destroy(request, *args, **kwargs)方法
- 刪除一條已存在的數據(刪除一條記錄)
- 刪除成功,返回204 No Content
- 如果不存在,返回404 Not Found
1.引入方式
from rest_framework.mixins import DestroyModelMixin
2.源碼對比
3.使用方法
a.視圖類繼承DestroyModelMixin
b.delete方法中直接return self.retrieve(request, *args, **kwargs)
def delete(self, request, *args, **kwargs): return self.destroy(request, *args, **kwargs)