码迷,mamicode.com
首页 > 其他好文 > 详细

0015 DRF框架开发(02 创建模型)

时间:2020-03-04 18:53:55      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:编写   姓名   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

 

0015 DRF框架开发(02 创建模型)

标签:编写   姓名   models   migrate   bsp   转化   imp   min   sch   

原文地址:https://www.cnblogs.com/dorian/p/12370266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!