django序列化serializers過程解析
阿新 • • 發佈:2020-01-09
這篇文章主要介紹了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}}]
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。