1. 程式人生 > 程式設計 >django序列化serializers過程解析

django序列化serializers過程解析

這篇文章主要介紹了django序列化serializers過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

DRF的核心 就是 前後端分離的核心

前後端分離開發的核心:

  • 將模型轉換為json 稱之為 序列化
  • 將json轉換為模型 稱之為 反序列化

Django的序列化工具讓你可以將Django的模型‘翻譯'成其它格式的資料。通常情況下,這種其它格式的資料是基於文字的,並且用於資料交換\傳輸過程。

序列化資料

Django為我們提供了一個強大的序列化工具serializers。使用它也很簡單,如下所示:

from django.core import serializers
data = serializers.serialize("xml",SomeModel.objects.all())
data = serializers.serialize("json",Author.objects.all())
print(data)

[{"model": "index.author","pk": 1,"fields": {"name": "pfeiliu","age": 19,"email": "[email protected]","isActive": false}},{"model": "index.author","pk": 5,"fields": {"name": "lao wei","age": 18,"email": "[email protected]","isActive": true}},"pk": 6,"fields": {"name": "WangDB","age": 36,"email": "[email protected]","pk": 7,"pk": 8,"pk": 9,"pk": 10,"pk": 11,"pk": 12,"pk": 13,"pk": 14,"isActive": false}}]

首先,從djang.core匯入它,然後呼叫它的serialize方法,這個方法至少接收兩個引數,第一個是你要序列化成為的資料格式,這裡是‘xml',第二個是要序列化的資料物件,資料通常是ORM模型的QuerySet,一個可迭代的物件。

就是這麼簡單!!

序列化指定欄位

如果你不想序列化模型物件所有欄位的內容,只想序列化某些指定的欄位,可以使用fields引數,如下所示:

from django.core import serializers
data = serializers.serialize('xml',SomeModel.objects.all(),fields=('name','size'))
data = serializers.serialize("json",Author.objects.all(),'age'))
print(data)

[{"model": "index.author","age": 19}},"age": 18}},"age": 36}},"age": 36}}]

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。