1. 程式人生 > >有關restful的父類檢視和序列化器

有關restful的父類檢視和序列化器

序列化器
    序列化操作:將物件--》字典
    反序列化操作:接收的字典--》字典
        驗證
    定義類,繼承自Serializer,ModelSerializer
    如果進行資料庫操作,繼承自ModelSerializer
    如果不需要進行資料庫操作,繼承自Serializer
    驗證:validate_屬性(),validate(),validators=[]
    定義方法create()
    定義方法update()
    序列化物件.save()
請求物件Request
    drf定義的型別,所有的檢視引數的引數
    .data:表單、非表單、檔案(請求體)
    .query_params:相當於GET
響應物件Response
    drf定義的型別,表示響應物件
    不再使用django中的HttpResponse、JsonResponse
    通過渲染器進行資料的返回
====================================檢視
django.views.View
books/
books/id
請求方式---地址------函式
1.GET--------books/----get查詢多個
2.GET--------books/id--get查詢一個
3.POST-------books/----post增加
4.PUT--------books/id--put修改所有的屬性
5.PATCH------books/id--patch修改指定的屬性
6.DELETE-----books/id--delete刪除
---------------------APIView
1.檢視的引數為Request型別
2.檢視的響應為Response型別
3.對APIException有更好的處理
4.在dispatch()前,進行身份認證、許可權判斷、流量控制
---------------------GenericAPIView
繼承自APIView
新增功能:
    1.列表檢視的簡化GET--------books/----get查詢多個
    2.詳情檢視的簡化GET--------books/id--get查詢一個
相比於APIView,GenericAPIView主要提供的新功能為:查詢時的過濾、分頁功能
再與mixin結合,則整體程式碼量減少
擴充套件類mixin:5個,對應著RESTful的5種資料操作
---------------------ModelViewSet
1.將處理函式定義在同一個檢視類中
2.可以在5種請求方式之外,定義更多的函式,處理更細緻的操作
實現:as_view({'請求方式':"函式名稱"}),在字典可以指定請求方式與處理函式的對映關係
---------------------對比
APIView----------->當不與資料庫互動時使用------>比如手機簡訊驗證碼
GenericAPIView---->當只做資料庫查詢互動時使用-->比如收貨地址的省市區資訊
    ReadOnlyModelViewSet
ModelViewSet------>需要對資料進行crud操作時使用->比如大部分情況
---------------------路由
SimpleRouter:未提供預設地址的路由
DefaultRouter:提供了預設地址的路由
完成檢視集的路由註冊
====================================配置
要求類檢視繼承自APIView
    1.認證
    2.許可權
    3.限流
要求類檢視繼承自GenericAPIView
    4.過濾
    5.排序
    6.分頁
其它
    7.版本
    8.異常處理
====================================文件
自動生成文件