Django day25 序列化元件( )

2022-08-18 04:06:10 字數 1719 閱讀 1321

序列化:將變數從記憶體中儲存或傳輸的過程稱之為序列化

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:定義乙個類,必須在類中寫

class

meta:

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...