欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django序列化serializers過(guò)程解析

 更新時(shí)間:2019年12月14日 09:33:27   作者:pfeiliu  
這篇文章主要介紹了django序列化serializers過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了django序列化serializers過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

前后端分離開(kāi)發(fā)的核心:

  • 將模型轉(zhuǎn)換為json 稱之為 序列化
  • 將json轉(zhuǎn)換為模型 稱之為 反序列化

Django的序列化工具讓你可以將Django的模型‘翻譯'成其它格式的數(shù)據(jù)。通常情況下,這種其它格式的數(shù)據(jù)是基于文本的,并且用于數(shù)據(jù)交換\傳輸過(guò)程。

序列化數(shù)據(jù)

Django為我們提供了一個(gè)強(qiáng)大的序列化工具serializers。使用它也很簡(jiǎn)單,如下所示:

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": "789@163.com", "isActive": false}}, {"model": "index.author", "pk": 5, "fields": {"name": "lao wei", "age": 18, "email": "123@qq.com", "isActive": true}}, {"model": "index.author", "pk": 6, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 7, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 8, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 9, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 10, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 11, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 12, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 13, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}, {"model": "index.author", "pk": 14, "fields": {"name": "WangDB", "age": 36, "email": "wangdb@163.com", "isActive": false}}]

首先,從djang.core導(dǎo)入它,然后調(diào)用它的serialize方法,這個(gè)方法至少接收兩個(gè)參數(shù),第一個(gè)是你要序列化成為的數(shù)據(jù)格式,這里是‘xml',第二個(gè)是要序列化的數(shù)據(jù)對(duì)象,數(shù)據(jù)通常是ORM模型的QuerySet,一個(gè)可迭代的對(duì)象。

就是這么簡(jiǎn)單!!

序列化指定字段

如果你不想序列化模型對(duì)象所有字段的內(nèi)容,只想序列化某些指定的字段,可以使用fields參數(shù),如下所示:

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python同時(shí)遍歷兩個(gè)list用法說(shuō)明

    python同時(shí)遍歷兩個(gè)list用法說(shuō)明

    這篇文章主要介紹了python同時(shí)遍歷兩個(gè)list用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 在VSCode中搭建Python開(kāi)發(fā)環(huán)境并進(jìn)行調(diào)試

    在VSCode中搭建Python開(kāi)發(fā)環(huán)境并進(jìn)行調(diào)試

    這篇文章介紹了在VSCode中搭建Python開(kāi)發(fā)環(huán)境并進(jìn)行調(diào)試的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • python中set常用操作匯總

    python中set常用操作匯總

    python的set和其他語(yǔ)言類似, 是一個(gè)無(wú)序不重復(fù)元素集, 基本功能包括關(guān)系測(cè)試和消除重復(fù)元素. 集合對(duì)象還支持union(聯(lián)合), intersection(交), difference(差)和sysmmetric difference(對(duì)稱差集)等數(shù)學(xué)運(yùn)算
    2016-06-06
  • Python continue繼續(xù)循環(huán)用法總結(jié)

    Python continue繼續(xù)循環(huán)用法總結(jié)

    本篇文章給大家總結(jié)了關(guān)于Python continue繼續(xù)循環(huán)的相關(guān)知識(shí)點(diǎn)以及用法,有需要的朋友跟著學(xué)習(xí)下吧。
    2018-06-06
  • python sorted函數(shù)的小練習(xí)及解答

    python sorted函數(shù)的小練習(xí)及解答

    這篇文章主要介紹了python sorted函數(shù)的小練習(xí)及解答,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python3 Click模塊的使用方法詳解

    Python3 Click模塊的使用方法詳解

    這篇文章主要介紹了Python3 Click模塊的使用方法詳解,需要的朋友可以參考下
    2020-02-02
  • PyCharm新建.py文件時(shí)默認(rèn)添加信息的實(shí)現(xiàn)

    PyCharm新建.py文件時(shí)默認(rèn)添加信息的實(shí)現(xiàn)

    這篇文章主要介紹了PyCharm新建.py文件時(shí)默認(rèn)添加信息的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python3 googletrans超時(shí)報(bào)錯(cuò)問(wèn)題及翻譯工具優(yōu)化方案 附源碼

    python3 googletrans超時(shí)報(bào)錯(cuò)問(wèn)題及翻譯工具優(yōu)化方案 附源碼

    這篇文章主要介紹了python3 googletrans超時(shí)報(bào)錯(cuò)問(wèn)題及翻譯工具優(yōu)化方案 附源碼,本文給大家分享解決方法,通過(guò)實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-12-12
  • 基于Python制作簡(jiǎn)易的windows修改器

    基于Python制作簡(jiǎn)易的windows修改器

    現(xiàn)在應(yīng)該大部分人都使用win11系統(tǒng)吧,win11其實(shí)挺好用哈,只是有一點(diǎn)不好用,就是右鍵的菜單,今天做個(gè)小程序,就是應(yīng)該修改win11的一個(gè)應(yīng)用程序,感興趣的可以了解一下
    2022-08-08
  • Python?OpenCV尋找兩條曲線直接的最短距離

    Python?OpenCV尋找兩條曲線直接的最短距離

    這篇文章主要為大家詳細(xì)介紹了Python?OpenCV尋找兩條曲線直接的最短距離,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評(píng)論