1.1 DRF视图
- Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。
- 它提供了序列化器Serialzier & ModelSerializer 的定义,可以帮助我们简化序列化与反序列化的过程,
- 提供丰富的类视图、扩展类、视图集来简化视图的编写工作。
- 还提供了认证、权限、频率、过滤、分页、接口文档等功能。
- REST framework提供了一个API 的Web可视化界面, 方便查看、测试接口。
特点
- 提供了定义序列化器的方法,可以快速将 模型类对象转为字典,便于序列化;
- 提供了丰富的类视图、Mixin扩展类,简化视图的编写;
- 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
- 多种身份认证和权限认证方式的支持;[jwt]
- 内置了限流系统;
- 直观的 API web 界面;【方便我们调试开发api接口】
- 可扩展性,插件丰富
- 序列化器使用
作用:
1.进行数据的校验-----反序列
2.将模型类的对象转换为字典—序列化
3.减少代码量,提高编码效率----序列化器
1.2序列化器
序列化定义:
将模型类对象转为字典,然后经过Response转为json字符串--------称为序列化
反序列化定义:
将网络中的json字符串经过Request对象,转为字典或者类字典,然后经过序列化器转为模型类的对象------称为反序列化
定义模型类的序列化器,需继承
rest_framework.serializers.Serializer —序列化器
rest_framework.serializers.ModelSerializer —模型类的序列化器
Serializer使用方式
反序列化插入数据时,必须重写create方法;反序列化更新数据时,必须重写update方法。
常用字段类型:
字段 | 字段构造方式 |
---|---|
BooleanField | BooleanField() |
NullBooleanField | NullBooleanField() |
CharField | CharField(max_length=None, min_length=None, allow_blank=False, trim_whitespace=True) |
EmailField | EmailField(max_length=None, min_length=None, allow_blank=False) |
RegexField | RegexField(regex, max_length=None, min_length=None, allow_blank=False) |