DRF视图
- Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。
-
它提供了序列化器Serialzier & ModelSerializer 的定义,可以帮助我们简化序列化与反序列化的过程。
-
提供丰富的类视图、扩展类、视图集来简化视图的编写工作。
-
还提供了认证、权限、频率、过滤、分页、接口文档等功能。
- REST framework提供了一个API 的Web可视化界面, 方便查看、测试接口。
DRF视图的特点
-
提供了定义序列化器的方法,可以快速将 模型类对象转为字典,便于序列化;
-
提供了丰富的类视图、Mixin扩展类,简化视图的编写;
-
丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
-
多种身份认证和权限认证方式的支持;[jwt]
-
内置了限流系统;
-
直观的 API web 界面;【方便我们调试开发api接口】
-
可扩展性,插件丰富
模型类的创建
首先我们要有一个部门的表
class Department(models.Model):
name = models.CharField(max_length=30)
class Meta:
db_table = 'Department'
def __str__(self):
return self.name
然后我们还需一个职务的表
class Duty(models.Model):
"""
职务
"""
name = models.CharField(max_length=30, verbose_name='职务名称')
def __str__(self):
return self.name
class Meta:
db_table = 'tb_duty'
然后我们需要定义一个最重要的,也就是员工表
class Staff(models.Model): # 不能也继承BaseModel,会冲突
"""
员工
"""
SEX_CHOICE = (
(1, '男'),
(2, '女')
)
department = models.ForeignKey(Department, on_delete=models.CASCADE)
duty = models.ForeignKey(Duty, on_delete=models.CASCADE)
name = models.CharField(max_length=30, verbose_name='姓名')
sex = models.IntegerField(choices=SEX_CHOICE, default=1, verbose_name='性别')
phone = models.CharField(max_length=11, verbose_name='手机号')
email = models.EmailField(max_length=60, verbose_name='邮箱')
census_register = models.CharField(max_length=200, verbose_name='户籍')
def __str__(self):
return self.name
class Meta:
db_table = 'tb_staff'
这里的模型类会跟前面的模型类进行关联
如果有需要的话也可以加上员工的入职时间之类的