要求:
ORM 版的学生管理系统
功能介绍:
* 讲师视图:
1:查看班级
2:创建班级
3:添加学员
4:创建课程
5:修改成绩
6:签到
7:返回
* 学员视图:
1:查看成绩(学员全部成绩并排行)
* 数据关系图
* 系统流程图
* table模型
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = \'Fade Zhao\' from sqlalchemy import String,Column,Integer,ForeignKey,DATE,Table from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship from config.setting import engine Base = declarative_base() # 班级对学生 grades_m2m_students = Table(\'grades_m2m_students\',Base.metadata, Column(\'grade_id\',Integer,ForeignKey(\'grades.grade_id\')), Column(\'student_id\',Integer,ForeignKey(\'students.student_id\'))) # 班级对老师 grades_m2m_teachers = Table(\'grades_m2m_teachers\',Base.metadata, Column(\'grade_id\',Integer,ForeignKey(\'grades.grade_id\')), Column(\'teacher_id\',Integer,ForeignKey(\'teachers.teacher_id\')) ) # 班级对课程 class grades_m2m_lessons(Base): __tablename__ = \'grades_m2m_lessons\' id = Column(Integer,primary_key=True) grade_id = Column(Integer,ForeignKey(\'grades.grade_id\')) lesson_id = Column(Integer,ForeignKey(\'lessons.lesson_id\')) grade = relationship(\'grades\',backref = \'grades_m2m_lesson\') lesson = relationship(\'lessons\',backref = \'grades_m2m_lesson\') def __repr__(self): return \'\033[33;1m%d grade_id=%d ,lesson_id%d\033[0m\'%(self.id,self.grade_id,self.lesson_id) class study_records(Base): \'\'\'学习记录\'\'\' __tablename__ = \'study_records\' id = Column(Integer,primary_key=True) grades_lesson_id = Column(Integer,ForeignKey(\'grades_m2m_lessons.id\')) student_id = Column(Integer,ForeignKey(\'students.student_id\')) studied = Column(String(32),nullable=False,default=\'NO\') score = Column(Integer,nullable=False,default=0) grades_m2m_lesson = relationship(\'grades_m2m_lessons\',backref = \'study_record\') student = relationship(\'students\',backref = \'study_record\') def __repr__(self): return \'\033[33;1mID:{0} grades_lesson_id:{1} student_id-{2} 是否学完:{3} 成绩:{4}\033[0m\'.format(self.id, self.grades_lesson_id, self.student_id, self.studied, self.score) class students(Base): \'\'\'学生\'\'\' __tablename__ = \'students\' student_id = Column(Integer,primary_key=True) name = Column(String(32),nullable=False,unique=True) QQ = Column(String(32),nullable=False,unique=True) def __repr__(self): return \'\033[33;1mID:%d 姓名:%s QQ:%s\033[0m\'%(self.student_id,self.name,self.QQ) class teachers(Base): \'\'\'老师\'\'\' __tablename__ = \'teachers\' teacher_id = Column(Integer,primary_key=True) name = Column(String(32),nullable=False,unique=True) def __repr__(self): return \'\033[33;1m姓名:%s\033[0m\' % (self.name) class lessons(Base): \'\'\'课程\'\'\' __tablename__ = \'lessons\' lesson_id = Column(Integer,primary_key=True) lesson_name = Column(String(32),nullable=False) class grades(Base): \'\'\'班级\'\'\' __tablename__ = \'grades\' grade_id = Column(Integer,primary_key=True) grade_name = Column(String(32),nullable=False,unique=True) grade_course = Column(String(32),nullable=False) students = relationship(\'students\',secondary = grades_m2m_students,backref = \'grades\') teachers = relationship(\'teachers\',secondary = grades_m2m_teachers,backref = \'grades\') def __repr__(self): return \'\033[33;1m%d 名称 %s 科目 %s\033[0m\'%(self.grade_id,self.grade_name,self.grade_course) def init_database(): Base.metadata.create_all(engine)