django框架的基礎知識點《伍》
阿新 • • 發佈:2018-11-10
=================反序列化操作=====================
反序列化:將接收到的字典轉換成模型類的物件
分為兩步:1.驗證,2.儲存
--------》驗證:驗證的方式;
1.型別+選項
2.validate_屬性名稱(self,value)===》驗證指定的屬性是否合法
3.validate(self,values)========》驗證多個屬性是否合法
4.validators=【方法】===========》針對屬性進行驗證
呼叫:
serializer = 模型類Serializer(data=字典)
serializer.is_valid()===>進行驗證,如果成功則返回True,反之則返false
serializer.error======>錯誤資訊,型別為字典
儲存:
1.定義序列化器,增加create(),update()方法
2.呼叫:serializer.save()
** 說明:
如果是建立,序列化器類(data=***)===》serializer.save()===>呼叫create()
如果是修改:序列化器類(模型類物件,data=***)===》serializer.save()呼叫update()
如果是部分修改:序列化器(模型類物件,data=***,partial=True)==》 serializer.save()===>呼叫update()
========================模型類序列化器=================
父類:serializers.ModelSerializer
定義關係屬性或隱藏關係屬性
class Meta:
model= 模型類
fields=‘__all__'(包含全部)
fields=[] (包含指定欄位)
exclude=【】(排除滿足條件的欄位)
extra_kwargs={約束}
# depth=1設定關係屬性的顯示方式
import random
** 說明:不需要定義create(),update()方法,因為父類中已經定義好了
=====================序列化器型別的選擇==============
序列化器的選擇:
不存在模型類,只使用部分功能
模型類序列化器的選擇:
存在模型類
===================DRF中的request物件===================
.data======>接收請求報文體中的資料dict
.query_params===>請求查詢字串dict
=================DRF中的response物件=================
Response(字典,status=狀態碼)==》200(查詢,增加),201(修改),204()刪除
======================APIView==================
對於資料庫的操作:
查詢所有===============》list,建立=================》create
查詢一個===============》retrieve,修改==============》update
刪除==================》刪除