Table of Contents
- 可以根据内部类Meta 自动生成字段(Filed)
- 已经自动实现了create 和 update方法
- extra_kwargs 字段中添加额外属性
- 数据验证需要自己写规则
- 根据model自动生成属性
- 方便修改添加属性字段
- 继承自Serializer 实现了create ,update方法
使用:
- 1.继承ModelSerializer模型类
- 2.定义类Meta 定义属性
- model = 模型类
- fields = (需要生成的字段,)
- 自动生成的字段,不满足需要,就直接在类中指定字段选项参数
- fields = “all” 所有字段
- extra_kwargs={“bcomment”:{max_value:100}} 也是指定字段选项参数
- exclude = (‘取反的字段’)
- read_only_fields=(字段,) 给字段添加read_only
- 3.已经定义了create(),和update()方法
- 4.数据验证只有unique实现
- 自动实现unique验证方法
- 别的数据验证方式还是使用 validate_field_name()方法
技巧:
- 可以指定没有的字段 (验证码),要么fields是all,要么要给field指定
出现错误:
- 应该继承ModelSerializer,(不要继承ModelField)
DRF 中GenericApiView和APIView的区别
-
APIView
- 继承自django的view
- 权限认证功能,限流功能
- 查询数据
- request.data 相当于body 自动转换成了json
- request.query_param() 接收字符串参数
- Response()返回对象
- 不用safe
- 继承自django的view
-
GenericAPIVIew
- 继承自ApiView,实现了分页,过滤排序
- 使用时候需要指定查询集queryset和序列化器serializer_class
- get_queryset()和get_serializer() 经常被重写
- 查询数据
- request.data 相当于body 自动转换成了json
- request.query_param() 接收字符串参数
序列化器的作用
- 1.可以验证数据
- 2.自动生成序列化json和反序列化json
- 3.自动创建更新数据库表内容
DRF常用扩展子类
- CreateAPIView
- ListAPIView
- ListCreateAPIView
- https://juejin.im/post/5a98ee2a51882555677df987
DRF Mixins
- mixin 类用于提供基本视图行为的操作。请注意,mixin 类提供了操作方法,而不是直接定义处理方法,如
.get()
和.post()
。这允许更灵活的行为组合。 - ListModelMixin
- CreateModelMixin
DRF 视图集的作用
- ViewSet视图集类不再实现get()、post()等方法,而是实现动作 action 如 list() 、create() 等。
视图集只在使用as_view()方法的时候,才会将action动作与具体请求方式对应上 - https://blog.csdn.net/gymaisyl/article/details/84488436
2.扩展延伸知识
3.灵感代办
4.复习内容
5.学习成果&问题
4.复习内容
5.学习成果&问题