序列化:將變數從記憶體中儲存或傳輸的過程稱之為序列化
1、序列化元件是幹什麼用的?
對應著表,寫序列化的類
2、如何使用序列化元件
serializer
1) 重新命名:用source:xx = serializers.charfield(source='name')
2) 取出出版社名字:
from rest_framework import serializers方式一:
#在模型表中重寫__str__方法:
publish=serializers.charfield()
方式二:
#用source,例:拿出出版社的城市
publish=serializers.charfield(source='
publish.city
')
如果不指定source,字段必須對應起來,如果指定了source,字段可以任意命名
3)使用:
例項化產生乙個物件(傳引數)
物件.data ---》拿到字典
3、(其他)source:
可以指定字段,也可也指定方法
#必須要寫乙個方法預製對應publish.test這是個方法,會執行該方法,並拿到返回結果
test = serializers.charfield(source='
publish.test
')
get_欄位名(self,obj物件)
# 寫一些邏輯
# 也可以用序列化的類,繼續序列化別的物件
return ''
3、 serializermethodfield,可以指定乙個方法
publish=serializers.serializermethodfield()#方法名:叫get_欄位名,要傳引數,引數是:當前book物件
defget_publish(self,obj):
#obj 是當前book物件
dic=
return dic
方法內部可以繼續用其他的序列化類
4、modelserializer:定義乙個類,必須在類中寫
classmeta:
model=指定表
#fields = '__all__'
#指定只取這兩個字段
fields = ['
nid','
name']
#去掉指定的字段
#exclude=['publish','authors']
#fields,跟exclude不能連用
#指定深度,就是跨幾個表(官方建議小於10,我給你的建議小於3)
#depth = 2
5、例項化傳引數的時候,可以按關鍵字傳:
bookserializer(instance='可以是queryset物件,也可以是單個物件
',many=true/false)
C 學習筆記25 序列化和反序列化
序列化 serialization 是將物件的狀態資訊轉換為可以儲存或傳輸的形式的過程,序列把物件轉換成有序位元組流,以便在網路上傳輸或者儲存在本地檔案中 序列化的主要目的有三個 1 以某種儲存形式使自定義物件持久化 2 將物件從乙個地方傳遞到另乙個地方 3 使程式更具維護。對於需要序列化的物件,需...
A08 序列化與反序列化
using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace a01 serializeanddeserialize s...
C 語言 08 序列化與反序列化
a.序列化 是將物件的狀態儲存到特定儲存介質中的過程 i.語法 public void serialize 序列化過程的檔案流,儲存的物件 b.返序列化 是從特定儲存介質中將資料重新構建物件的過程 i.語法 public object deserialize 檔案流 i.注意 deserialize...