一.表关系

创建表关系,并创建约束

 

 

 

 

 

 

 

 

班级表:class

 

 

 

学生表:

student

 

 

 

cid

caption

grade_id

 

sid

sname

gender

class_id

1

一年一班

1

 

1

乔丹

1

2

二年一班

2

 

2

艾弗森

1

3

三年二班

3

 

3

科比

2

 

 

 

 

 

 

 

 

老师表:teacher

 

 

 

课程表:

course

 

 

 

tid

tname

 

 

cid

cname

teacher_id

 

1

张三

 

 

1

生物

1

 

2

李四

 

 

2

体育

1

 

3

王五

 

 

3

物理

2

 

 

 

 

 

 

 

 

 

成绩表:score

 

 

 

 

年级表:

class_grade

 

 

sid

student_id

course_id

score

 

gid

gname

 

1

1

1

60

 

1

一年级

 

2

1

2

59

 

2

二年级

 

3

2

2

99

 

3

三年级

 

 

 

 

 

 

 

 

 

班级任职表:

teach2cls

 

 

 

 

 

 

 

tcid

tid

cid

 

 

 

 

 

1

1

1

 

 

 

 

 

2

1

2

 

 

 

 

 

3

2

1

 

 

 

 

 

4

3

2

 

 

 

 

 

.创建测试数据

1.创建项目准备环境

步骤:

(1)在终端使用mkvirtualenv命令创建一个新的虚拟环境,然后使用pip3命令下载安装django

mkvirtualenv ORMtest -p python3

pip3 install django

(2)使用django-admin命令创建django项目

django-admin startproject ORMtest

(3)pycharm打开该项目,配置python编译器

(4)pycharm的终端使用startapp新建子应用

python3 manage.py startapp SMS

(5)在配置文件settings.py中注册新建的子应用SMS

# Application definition

 

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'SMS.apps.SmsConfig',  # <---注册新应用

]

2.创建模型

步骤:

(1)在子应用SMS文件内的模型文件models.py中创建模型类

from django.db import models

# Create your models here.
class Classes(models.Model):
    cid = models.AutoField(primary_key=True)
    caption = models.CharField(max_length=32)
    grade = models.ForeignKey("ClassGrade", on_delete=models.CASCADE)


class ClassGrade(models.Model):
    gid = models.AutoField(primary_key=True)
    gname = models.CharField(max_length=32)


class Student(models.Model):
    sid = models.AutoField(primary_key=True)
    sname = models.CharField(max_length=32)
    gender_choice = ((0, ""), (1, ""))
    gender = models.SmallIntegerField(choices=gender_choice, default=1)
    classes = models.ForeignKey("Classes", on_delete=models.CASCADE)


class Teacher(models.Model):
    tid = models.AutoField(primary_key=True)
    tname = models.CharField(max_length=32)
    classes = models.ManyToManyField("Classes")


class Course(models.Model):
    cid = models.AutoField(primary_key=True)
    cname = models.CharField(max_length=32)
    teacher = models.ForeignKey("Teacher", on_delete=models.CASCADE)


class Score(models.Model):
    sid = models.AutoField(primary_key=True)
    student = models.ForeignKey("Student", on_delete=models.CASCADE)
    course = models.ForeignKey('Course', on_delete=models.CASCADE)
    score = models.IntegerField()
models.

相关文章: