37 lines
1.7 KiB
Python
37 lines
1.7 KiB
Python
#导入需要用的工具
|
|
#Column用来定义数据库表字段;Integer整数;String字符串;DateTime时间类型
|
|
from sqlalchemy import Column, Integer, String, DateTime
|
|
|
|
#relationship用于建立多表之间的关联关系
|
|
from sqlalchemy.orm import relationship
|
|
|
|
#Base是数据库模型的基类,所有数据表模型都要继承它
|
|
from database import Base
|
|
|
|
#导入班级和老师的多对多中间表
|
|
from model.teacher_model import teacher_class
|
|
|
|
#班级表模型 继承Base,用来映射MySQL里面的classes表 Column是用来定义数据库表里面的字段
|
|
class Classes(Base):
|
|
__tablename__ = "classes"
|
|
# 班级cid,自增主键,唯一标识每一条班级数据
|
|
cid = Column(Integer, primary_key=True, autoincrement=True)
|
|
# 班级名称,字符串最长10个字符,不允许为空
|
|
class_name = Column(String(10), nullable=False)
|
|
# 开班时间,时间类型,不允许为空
|
|
start_time = Column(DateTime,nullable=False)
|
|
# 班主任名称,字符串最长10个字符,不允许为空
|
|
head_teacher = Column(String(10),nullable=False)
|
|
# 任课老师,字符串最长15个字符,不允许为空
|
|
teacher = Column(String(15),nullable=False)
|
|
# 逻辑删除标记:默认1代表正常可用;执行逻辑删除后改为0代表已删除
|
|
is_del = Column(Integer, default=1)
|
|
#老师表和班级表多对多 secondary 专门用于【多对多】关系,用来指定中间表
|
|
teachers = relationship("Teacher", secondary=teacher_class, back_populates="classes")
|
|
#班级表和学生表一对多
|
|
students = relationship("Student", back_populates="classes")
|
|
#relationship SQLAIchemy的关联函数 student代表关联的另一个模型类名(学生模型Student) back_populates=反向关联
|
|
|
|
|
|
|