高频面试题-DRF-序列化-反序列化

简介: Django-drf框架最大的亮点莫过于Serializer序列化器这个操作了, 它极大的简化了程序员在模型类和JSON数据格式之间转换的代码,节省了大量的时间和遍历。

高频面试题-DRF-序列化-反序列化

xu1.png

Django-drf框架最大的亮点莫过于Serializer序列化器这个操作了, 它极大的简化了程序员在模型类和JSON数据格式之间转换的代码,节省了大量的时间和遍历。
接下来我们通过图文和代码的形式正确一遍就让各位对这个序列化和反序列化概念理解的通透哦!

序列化-概述

序列化这个概念是站在后端的角度, 以后端为主的思路梳理的, 后端将来需要将从Mysql数据库中查询出来的数据,按照接口文档的数据格式一般json格式居多返回给前端工程师, 前端工程师按照接口文档解析json数据渲染展示!

简而言之: 序列化过程是: 后端通过ORM框架从Mysql数据库查出数据转换成模型类对象-------> json数据格式

xu2.png

反序列化-概述

反序列化过程: 前端发送ajax请求-传递json数据-------->后端----将json数据转换成模型类对象

xu3.png

序列化实战

  1. 首先准备Django的用户模型类
from django.db import models

class Person(models):
    name = models.CharField(max_length=30,  verbose_name='狗名字')
    age = models.IntegerField(verbose_name="年龄")
    gender = models.BooleanField(default=True, verbose_name="性别")

2.准备根据用户模型类构建Serializer序列化器类

from rest_framework import serializers

class PersonSerializer(serializers.Serializer): 
    
    name = serializers.CharField(max_length=30, min_length=8)
    age = serializers.IntegerField()
    gender = serializers.BooleanField()

3.使用序列化器类进行序列化操作

# 1. 构建模型类数据
p_model = Person(name='laowang', age=88, gender=True)


# 2. 将 模型类数据----序列化----json数据
p_serializer = PersonSerializer(instance=p_model)

# 3.取出序列化完毕的 json数据
json_data = p_serializer.data

反序列化-实战

# 1. 构建 json数据
data_json = {
    "name":"xiaowangba",
    "age":18,
    "gender":True
}

# 2. json数据----反序列化----模型类数据
p_serializer = PersonSerializer(data=data_json)
p_serializer.is_valid() #数据校验
p_serializer.save() # 模型类数据存储
相关文章
|
14天前
|
存储 Java
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)
|
18天前
|
JSON Java API
jackson序列化和反序列化中的注解和扩展点大全【收藏】
jackson序列化和反序列化中的注解和扩展点大全【收藏】
|
19天前
|
存储 JSON 数据库
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
|
19天前
|
JSON 前端开发 API
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
|
28天前
|
网络协议 Java API
【Java】序列化和反序列化
【Java】序列化和反序列化
19 4
|
1月前
|
Java 数据安全/隐私保护 Android开发
Java基础21-读懂Java序列化和反序列化(二)
Java基础21-读懂Java序列化和反序列化(二)
89 1
|
17天前
|
存储 Java 数据库
Java中序列化与反序列化详解
Java中序列化与反序列化详解
13 0
|
18天前
|
JSON Java 数据格式
实现自定义序列化和反序列化控制的5种方式
实现自定义序列化和反序列化控制的5种方式
|
18天前
|
存储 缓存 Java
杭州 序列化与反序列化 (借鉴-侵-删)(序列化ID问题)
杭州 序列化与反序列化 (借鉴-侵-删)(序列化ID问题)
9 0
|
19天前
|
XML 机器学习/深度学习 存储
技术心得:对象的序列化存入数据库,与反序列化
技术心得:对象的序列化存入数据库,与反序列化
14 0