Django REST framework 序列化與反序列化
阿新 • • 發佈:2019-02-02
對於序列化和反序列化,其實一直都是懵懵懂懂,不知道為什麼要序列化?序列化好處在哪裡? 今天抽空小記一下,持續更新........
POST 請求---------> 反序列化過程------->
deserializer: Json → native datatype【data = JSONParser().parse(BytesIO(content))】 → isntance【serializer = SnippetSerializer(data=data) serializer.is_valid()# True serializer.save()】
GET 請求 ----------> 序列化過程---------->
serilization : isntance(django 模型例項) → native datatype(python 原生資料型別)【serializer.data】 → Json【JSONRenderer().render(serializer.data)】,將model例項的轉為json格式response出去。
POST 請求---------> 反序列化過程------->
deserializer: Json → native datatype【data = JSONParser().parse(BytesIO(content))】 → isntance【serializer = SnippetSerializer(data=data) serializer.is_valid()# True serializer.save()】
GET 請求 ----------> 序列化過程---------->
serilization : isntance(django 模型例項) → native datatype(python 原生資料型別)【serializer.data】 → Json【JSONRenderer().render(serializer.data)】,將model例項的轉為json格式response出去。
從REST的設計原則看,它實際上是為了滿足客戶端的需求,現在的web後端與客戶端(ios/android)打交道的多,這樣的格式化response更便於它們解析。換句話說就是:將response打包成某種格式(如JSON)的東西。