drf中为我们提供了Serializer,他主要有两大功能:

  • 对请求数据校验(底层调用Django的Form和ModelForm)
  • 对数据库查询到的对象进行序列化

  • [x] fields 校验的字段。

  • extra_kwargs 用于对基本字段加额外约束。
  • validatorvalidate_ 两种校验字段的方式。

    基于Serializer

    Serializer的使用不需要依赖于模型,所以可以不要编写model,直接编写serializer文件。
    image.png

    基于ModelSerializer

    字段可保存到数据库 ```python

    models.py

from django.db import models

class Role(models.Model): “”” 角色表 “”” title = models.CharField(verbose_name=”名称”, max_length=32)

class Department(models.Model): “”” 部门表 “”” title = models.CharField(verbose_name=”名称”, max_length=32)

class UserInfo(models.Model): “”” 用户表 “”” level_choices = ((1, “普通会员”), (2, “VIP”), (3, “SVIP”),) level = models.IntegerField(verbose_name=”级别”, choices=level_choices, default=1)

  1. username = models.CharField(verbose_name="用户名", max_length=32)
  2. password = models.CharField(verbose_name="密码", max_length=64)
  3. age = models.IntegerField(verbose_name="年龄", default=0)
  4. email = models.CharField(verbose_name="邮箱", max_length=64)
  5. token = models.CharField(verbose_name="TOKEN", max_length=64, null=True, blank=True)
  6. # 外键
  7. depart = models.ForeignKey(verbose_name="部门", to="Department", on_delete=models.CASCADE)
  8. # 多对多
  9. roles = models.ManyToManyField(verbose_name="角色", to="Role")

``` image.png
含外键
image.png