接口,序列化总结

周总结

接口

"""
1、概念:url + 请求方式 + 请求参数 + 响应结果

2、接口文档:采用某种方式某种平台(Yapi)将接口的四部分呈现成文档形式

3、restful规范:
    url:https://api.baidu.com/v1/books/?ordering=-price,id&limit=3
    请求方式:get | post | put | patch | delete
    响应:
    {
        'status': 0,
        'msg': 'ok',
        'results': [
            {
                'img': https://api.baidu.com/media/img/001.png
            }
        ]
    }, http_status=200

4、drf框架:
    1)django的插件
    2)安装命令:pip install djangorestframework
    3)在django项目的settings中注册app
"""

基础模块

"""
1、APIView类
    1)继承View
    2)as_view:禁用csrf
    3)dispatch:请求、解析、三大认证、异常、响应、渲染
    4)类属性:局部全局配置

2、请求模块:
    1)request兼容request._request
    2)request.query_params,request.data

3、解析模块:form-data、urlencoded、json三种格式的数据包解析

4、异常模块:
    1)settings中配置自定义异常处理函数
    2)重写异常处理函数,先交给drf处理,如果没有处理,自己再处理一下,重点要记录异常日志

5、响应模块:
    1)data
    2)status:http_status
    3)exception

6、渲染模块:json、browser
"""

序列化模块

"""
1、序列化家族:Serializer、ModelSerializer、ListSerializer
    1)Serializer:底层系列化
    2)ModelSerializer:继承Serializer,用配置反射完成序列化:model,fields,extra_kwargs
    3)ListSerializer:辅助ModelSerializer,在ModelSerializer中通过list_serializer_class来配置,建立联系,ListSerializer类的对象.child就是拿到关联的ModelSerializer

2、序列化字段:
    1)model类中的字段,可以直接写在fields
    2)自定义序列化字段
        - 序列化类中:SerializerMethodField
        - 模型类中:@property

3、反序列化字段:
    1)model类中的字段,可以直接写在fields
    2)自定义反序列化字段:
        - 序列化类中:字段 = serializer.类型(约束, write_only=True)

4、多表关系:
    1)db_constraint断关联
    2)relate_name设置反向字段
    3)on_delete设置级联关系:级联、不处理、置空、默认值

5、外界连表深度:
    1)子序列化
    2)depth配置
    3)@property自定义序列化字段

6、十大接口:
    1)单查群查 => many=True
    2)单增群增 => many=True
    3)单删群删 => 只做is_delete字段修改,不需要序列化类参与
    4)单改群改 => ListSerializer、many=True、partial=True
    5)视图序列化传参 => context={}

7、序列化字段规则:提供给前台,前台才能看见,用read_only表示只序列化

8、反序列化字段规则:用write_only表示只反序列化
    1)必填字段:不提供就报错,声明默认或设置required=True
    2)选填字段:不填不校验,填必校验,声明但是required=False
    3)不填字段:不声明,且能不提供就能入库
"""

原文地址:https://www.cnblogs.com/jinhongquan/p/12120551.html

时间: 2024-07-30 15:34:26

接口,序列化总结的相关文章

Externalizable接口 序列化

Java默认的序列化机制非常简单,而且序列化后的对象不需要再次调用构造器重新生成,但是在实际中,我们可以会希望对象的某一部分不需要被序列化,或者说一个对象被还原之后, 其内部的某些子对象需要重新创建,从而不必将该子对象序列化. 在这些情况下,我们可以考虑实现Externalizable接口从而代替Serializable接口来对序列化过程进行控制 (后面我们会讲到一个更简单的方式,通过transient的方式). Externalizable接口extends Serializable接口,而且

序列化类外键字段的覆盖,十大接口序列化总结,视图家族

序列化类外键字段的覆盖 """ 1)在序列化类中自定义字段,名字与model类中属性名一致,就称之为覆盖操作 (覆盖的是属性的所有规则:extra_kwargs中指定的简易规则.model字段提供的默认规则.数据库唯一约束等哪些规则) 2)外键覆盖字段用PrimaryKeyRelatedField来实现,可以做到只读.只写.可读可写三种形式 只读:read_only=True 只写:queryset=关联表的queryset, write_only=True 可读可写:que

Serializable接口序列化与反序列化

参考链接 我们在编写实现Serializable接口的类的时候,IDE会提示:需要增加一个Serial Version ID. 为什么要增加? 它是怎么计算出来的? 有什么用? 类实现Serializable接口的目的是为了可持久化,比如网络传输或本地存储.实现序列化很简单: 1 public class Person implements Serializable { 2 private String name; 3 /*name属性的getter/setter方法省略*/ 4 } 这里以Ja

Android Studio自动化快速实现Parcelable接口序列化

1.在线安装 然后打开File -> Settings -> Pugins -> Browse Repositories 如下,输入android parcelable code generator搜索到直接下就行(但是你应该下载不成功,为啥呢,你懂得****,请看离线安装)! 2.离线安装,点击这里下载安装包 下载好了之后,打开File -> Settings -> Pugins -> Install plugin from disk,选择你刚刚下载到的.zip压缩包

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类 本节导读:本节主要介绍通过序列化接口IXmlSerializable实现XML序列化和反序列化,整理了XML基础操作及序列化的通用类(包括XML及节点的基础读写操作,XML到DataSet\DataTable互转换操作,XML序列化及反序列化通用方法等). 读前必备: A.类和类的实例 [.net 面向对象编程基础]  (9) 类和类的

谈谈序列化—实体bean一定要实现Serializable接口?

导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型.但是由于map每次都要匹配key值,很麻烦.所以在之后就将参数传递和返回类型全都改成了实体bean,并且让每个bean都实现了Serializable接口.然后,在这里的时候,就有点疑惑.首先:为什么要进行序列化:其次:每个实体bean都必须实现serializabel接口吗?最后:我做一些项目的时候,没有实现序列化,同样没什么影响,然后现在做项目需要序列化,到底什么时候应该进行序列化操作呢?

Serializable 指示一个类可以序列化;ICloneable支持克隆,即用与现有实例相同的值创建类的新实例(接口);ISerializable允许对象控制其自己的序列化和反序列化过程(接口)

Serializable : 序列化是指将对象实例的状态存储到存储媒体的过程.在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流.在随后对对象进行反序列化时,将创建出与原对象完全相同的副本. 在 面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡.只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行.例 如,简单的二进制序列化不能满足需要,或者,由于特定原因需要确定类中那些字段需要序列化. 基本序列化

drf序列化高级、自定义只读只写、序列化覆盖字段、二次封装Response、数据库查询优化(断关联)、十大接口、视图家族、自动补全图片链接

目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 序列化类其他配置(了解) 十大接口 BaseSerializer初始化方法 十大接口序列化总结 单查群查 单增群增 单删群删 单整体改/群整体改 单局部改/群局部改 群增群改配置 十大接口小结 字段提供就校验,不提供拉到 DjangoORM内置优化机制:一次最多查21条数据 models.py response.py serializers.py

序列化手段(2)——Serializable和Parcelable的实现演示

如果都了解过Parcel类的实现,那么其基本只序列化基本类型的特性还不能满足我们的需求(事实上android中Binder的IPC通信中,Parcel对象也能传递Parcel对象,现实编程用得极少).具体的Parcel类这里不做介绍.点击查看Parcel类详解 Serializable和Parcelable在现实中的应用场景,有个网友写得非常nice,强烈推荐大家有空看下.点击查看Serializable和Parcelable你应该懂得的几个应用场景 之前学习java的时候,实现Serializ