标签:编写 姓名 models migrate bsp 转化 imp min sch
上一节介绍了DRF开发的基本流程,共五个步骤:
1 创建模型
2 创建序列化器
3 编写视图
4 配置URL
5 运行测试
本节主要讲解创建模型。
构建学校,教师,学生三个模型,这三个模型之间的关系是:学校和教师是一对多的关系,教师和学生是多对多的关系。为了更直观的体现多对多的关系,把一个多对多,转化为两个一对多。需要另外创建一个教师学生模型,用于标注教师和学生的对应关系。
因此,本节主要构建四个模型。全部存在Applications/Examples/models.py文件中。
在Django中,所有模型的创建都必须继承models。因此,在models.py文件中,默认就引用了这个包。
from django.db import models
1 学校模型
class Schools(models.Model): name = models.CharField(max_length=50, help_text=‘学校名称‘) email = models.EmailField(max_length=100, help_text=‘电子邮箱‘) phone = models.CharField(max_length=14, help_text=‘学校座机‘) employment_rate = models.FloatField(help_text=‘就业率‘) class Meta: db_table = ‘Schools‘ def __str__(self): return self.name
2 教师模型
class Teachers(models.Model): name = models.CharField(max_length=20, help_text=‘老师姓名‘) school = models.ForeignKey(to=Schools, on_delete=models.CASCADE, help_text=‘所属学校‘) class Meta: db_table = ‘Teachers‘ def __str__(self): return self.name
3 学生模型
class Students(models.Model): name = models.CharField(max_length=20, help_text=‘学生姓名‘) SEX_CHOICE = ( (0, ‘男‘), (1, ‘女‘) ) sex = models.IntegerField(choices=SEX_CHOICE, help_text=‘性别‘) subject = models.CharField(max_length=30, help_text=‘所选科目‘) school = models.ForeignKey(to=Schools, on_delete=models.CASCADE, help_text=‘所属学校‘) class Meta: db_table = ‘Students‘ def __str__(self): return self.name
4 教师学生模型
class TeacherAndStudent(models.Model): teacher = models.ForeignKey(to=Teachers, on_delete=models.CASCADE, help_text=‘老师‘) student = models.ForeignKey(to=Students, on_delete=models.CASCADE, help_text=‘学生‘) class Meta: db_table = ‘TeacherAndStudent‘ def __str__(self): return self.teacher.name + ‘/‘ + self.student.name
模型建好后,要执行数据迁移。在PyCharm Terminal下执行:
python manage.py makemigrations python manage.py migrate
标签:编写 姓名 models migrate bsp 转化 imp min sch
原文地址:https://www.cnblogs.com/dorian/p/12370266.html