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

  上一节介绍了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

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

时间: 2024-08-12 16:08:41

0015 DRF框架开发(02 创建模型)的相关文章

7.MVC框架开发(创建层级项目)

在一个项目比较大的时候,就会有多个层级项目 1)在项目中选定项目右建新建区域(新的层级项目),项目->右键->添加->区域,构成了一套独立的MVC的目录,这个目录包括Views,Controllers,Models文件夹 2)如何访问Areas里的action,比如areas目录里: 如果要访问ManagerShop的里的Index,应该在其他页面中进行如下设置: @Html.ActionLink("[后台管理]", "Index", new {

0018 基于DRF框架开发(多表增删改的实现)

一个接口同时更新多个表的步骤如下: 先针对每个表写一个序列化器 在视图中接收数据,并根据数据分别调用不同的序列化器. 1 新增主从表 在视图中先接收数据,把主从表的数据分别放在不同的字典里,把主表字典传入主表序列化器,如果主表数据存在,则获取主表ID,如果主表记录不存在,则先新增主表记录,完成后得到该记录的ID,再把ID加入到从表字典中,调用从表序列化器更新. 2 修改主从表 在视图中接收数据,把主从表的数据分别放在不同的字典里,先调用主表序列化器更新主表,再调用从表序列化器更新从表. 3 删除

python开发学习-day15(前端部分知识、web框架、Django创建项目)

s12-20160430-day15 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin

drf框架 6 视图集与路由组件(开发最常用、最高级) 三大认证原理 RBAC认证规则

准备工作 models.py from django.db import models # 基类:是抽象的(不会完成数据库迁移),目的是提供共有字段的 class BaseModel(models.Model): is_delete = models.BooleanField(default=False) updated_time = models.DateTimeField(auto_now_add=True) class Meta: abstract = True # 必须完成该配置 cla

Springboot Application 集成 OSGI 框架开发

内容来源:https://www.ibm.com/developerworks/cn/java/j-springboot-application-integrated-osgi-framework-development/index.html Springboot Application 集成 OSGI 框架开发 张 莹莹2018 年 4 月 02 日发布 WeiboGoogle+用电子邮件发送本页面 0 Java 类加载器 启动类加载器 (Bootstrap ClassLoader) 是 Ja

DRF框架之Serializer序列化器的序列化操作

在DRF框架中,有两种序列化器,一种是Serializer,另一种是ModelSerializer. 今天,我们就先来学习一下Serializer序列化器. 使用Serializer序列化器的开发步骤: 1. 定义Serializer序列化器 首先,我们要在子应用中,创建见一个serializers.py文件,用来编写Serializer序列化器代码. from rest_framework import serializers # 定义序列化器 class BookInfoSerializer

Jdon框架开发指南

Jdon框架快速开发指南 开发主要步骤如下: JdonFramework6.0以上两步开发见这里. 快速配置指南 新增/查询/修改/删除(CRUD); 批量查询和分页显示 本文Step By Step详细讲解如何使用Jdon框架基于领域模型快速开发这两个功能,通过Jdon框架的可以快速完成系统原型(ArcheType),使得开发者将真正精力集中在每个项目系统的特殊业务处理. 本案例源码下载 按这里查看更详细全面文档 快速配置指南 Jdon框架有一个配置文件叫jdonframework.xml,其

android下apkplug通用主题(皮肤)切换解决方案之主题包开发-02

该文章是基于apkplug V1.6.8 进行说明的 我们提供了一个demo做为参考,项目下载地址为:http://git.oschina.net/plug/IMThemeDemo 该 IMThemeDemo 实现了简单的聊天泡泡切换功能,同时主题包(插件)是托管在apkplug的云服务器上的.所以要阅读项目的完整代码可以先看插件托管服务开发系列文章 <插件托管服务开发指南> demo运行效果图: 上一篇文章我们实现了主应用的开发,本篇应用我们开发主题包(插件). 一,主题包说明 apkplu

EF框架之CodeFirst创建数据库

CodeFirst是Entity Framework4.1后新增的一种生成模式,在这种方式下,你不需要在DBMS中创建数据库,也无需在VS中画实体模型了,你要做的仅仅是写写代码即可由ORM框架自动创建模型和数据库,非常的方便和简单(由于开发人员只是编写代码,不关心数据库的具体结构,因此也有人把这种方式叫做CodeOnly的). 下面就以一个简单的例子演示一下如何使用CodeFirst生成数据库. 一.新建一个项目并添加必要的引用. 二.编写代码. 1在项目中添加两个实体类和一个数据上下文类如下图