class Attendance(Base): # 考勤?? __tablename__ = 'attendance' att_time = models.Column(models.Date) status = models.Column(models.Integer, default=1) students_id = models.Column(models.Integer, models.ForeignKey('student.id'))
class Grade(BaseModel): __tablename__ = 'grade' #id = models.Column(models.Integer, primary_key=True, autoincrement=True) grade = models.Column(models.Float, default=0) #默认有的课程没有成绩 course_id = models.Column(models.Integer, models.ForeignKey('course.id')) student_id = models.Column(models.Integer, models.ForeignKey('students.id'))
class Grade(BaseModel): #成绩表,课程、学员关联此表 __tablename = "grade" grade = models.Column(models.Float) course_id = models.Column(models.Integer, models.ForeignKey("course.id")) # course_label = models.Column(models.String, models.ForeignKey("course.label")) student_id = models.Column(models.Integer, models.ForeignKey("students.id"))
class Students(BaseModel): #学生表 __tablename__ = "students" #表名称 name = models.Column(models.String(32)) age = models.Column(models.Integer) gender = models.Column(models.Integer) #0 男 1 女 2 unknown student_id = models.Column(models.Integer, models.ForeignKey("user.identify_id"))
class Attendance(BaseModel): __tablename__ = 'attendance' #id = models.Column(models.Integer, primary_key=True, autoincrement=True) att_time = models.Column(models.Date) status = models.Column(models.Integer, default=1) #0迟到1正常出勤2早退3请假4旷课 student_id = models.Column(models.Integer, models.ForeignKey('students.id')) #考勤与学生多对一关系
class Teacher(Base): __tablebname__ = "teacher" name = models.Column(models.String(32)) age = models.Column(models.Integer) gender = models.Column(models.Integer, default=1) # 1 男,2 女 ,3 未知 course_id = models.Column(models.Integer, models.ForeignKey("course.id"))
class Score(Base): __tablebname__ = "score" name = models.Column(models.String(32), unique=True) course_id = models.Column(models.Integer, models.ForeignKey("course.id")) students_id = models.Column(models.Integer, models.ForeignKey("students.id"))
class Students(BaseModel): #继承BaseModel中的方法 """ 学员表 """ __tablename__ = 'students' #设置数据表的名称 name = models.Column(models.String(32)) #设置对应的字段 age = models.Column(models.Integer) gender = models.Column(models.Integer) #0男 1女 -1未知
class Students(BaseModel): """ 学员表 """ __tablename__ = "students" name = models.Column(models.String(32)) age = models.Column(models.Integer) gender = models.Column(models.Integer,default = 13) #0 男 1女 -1 unknown
class Teachers(BaseModel): #教师表 __tablename__ = "teacher" username = models.Column(models.String(32)) age = models.Column(models.Integer) gender = models.Column(models.String(32)) course_id = models.Column(models.Integer, models.ForeignKey("course.id")) teacher_id = models.Column(models.Integer, models.ForeignKey("user.identify_id"))
class Clock(Base): __tablebname__ = "clock" att_time = models.Column(models.Date) status = models.Column(models.Integer, default=1) #1 正常出勤 2,迟到 3,早退 4 ,请假 5,旷课 student_id = models.Column(models.Integer, models.ForeignKey("students.id"))
class Curriculum(BaseModel): __tablename__ = "curriculum" c_id = models.Column(models.String(32)) c_name = models.Column(models.String(32)) c_time = models.Column(models.Date) def __repr__(self): return self.c_name
class Kaoqin(BaseModel): __tablename__ = 'kaoqin' kao_time = models.Column(models.Date) status = models.Column(models.Integer, default=1) #0 迟到 1 正常 2 早退 3 请假 4 旷课 student_id = models.Column(models.Integer, models.ForeignKey('student.id')) # models.create_all() # 学员、课程表 # class Stu_Cou(BaseModel): # __tablename__ = 'stu_cou' # course_id = models.Column(models.Integer,models.ForeignKey('course.id')) # student_id = models.Column(models.Integer,models.ForeignKey('student.id')) # models.drop_all() # models.create_all() # course = Course(lable='python',description='lll') # course.save() # course1 = Course(lable='ui',description='hao') # course1.save() # course2 = Course(lable='java',description='oo') # course2.save() # stu = Student(name='xioali',age=18,gender='男') # stu.save() # stu1 = Student(name='lo',age=20,gender='女') # stu1.save() # stu.to_course = [course] # stu.save() # stu1.to_course = [course1,course2] # stu1.save() # course2 = Course() # course2.lable = 'java' # course2.description = '不行啊' # course3 = {'lable':'UI','description':'好多美女'} # course4 = Course(**course3) # session.add_all([course2,course4]) # session.commit() # Teacher(name='老陈',age=25,gender='男',course_id=2).save() # t = Teacher.query.get(1).delete_obj() # teachers = Teacher.query.all() # teacher = Teacher.query.filter_by(age = 18).all() # teacher = Teacher.query.get(4) # teacher = Teacher.query.order_by(Teacher.age.desc()).all() # print(teacher) # teacher = Teacher.query.get(3) # teacher.name = '老李' # models.session.commit() # teacher = Teacher.query.offset(0).limit(2).all() # print(teacher) # teacher = Teacher.query.group_by('age').all() # print(teacher) # c = Course.query.get(1) # print(c.to_teacher) # t = Teacher.query.get(1) # print(t.to_course1)
class Grade(BaseModel): """ 课程,学员 """ __tablename__ = 'grade' grade = models.Column(models.Float, default=0) course_id = models.Column(models.Integer, models.ForeignKey('course.id')) student_id = models.Column(models.Integer, models.ForeignKey('students.id'))
class Attendance(BaseModel): """ 考勤表,记录是否请假 """ __tablename__ = 'attendance' att_time = models.Column(models.Date) status = models.Column(models.Integer, default=1) #0迟到,1是正常出勤,2早退,3请假,4旷课 student_id = models.Column(models.Integer, models.ForeignKey('students.id')) #考勤,学生多对一映射
class Attendance(BaseModel): """ 考勤表,记录是否请假 学员 """ __tablename__ = "attendance" att_time = models.Column(models.Date) status = models.Column(models.Integer,default = 1) #0 迟到 1 正常出勤 2 早退 3 请假 4 旷课 student_id = models.Column(models.Integer, models.ForeignKey("students.id"))
class Grade(BaseModel): """ 成绩表 课程,学员关联此表 """ __tablename__ = "grade" grade = models.Column(models.Float, default=0) course_id = models.Column(models.Integer, models.ForeignKey("course.id")) student_id = models.Column(models.Integer, models.ForeignKey("students.id"))
def mock_read_all(*args): mock_col1 = models.Column(id=1, column_name='Test', column_pos=0, project_id=1) mock_col2 = models.Column(id=2, column_name='Deploy', column_pos=1, project_id=1) return [mock_col1, mock_col2]
class Teachers(BaseModel): """ 教师 老师与课程是多对一关系 """ __tablename__ = "teachers" name = models.Column(models.String(32)) age = models.Column(models.Integer) gender = models.Column(models.Integer,default = 3) # 0 男 1女 -1 unknown course_id = models.Column(models.Integer, models.ForeignKey("course.id")) #教师多对一 映射表是课程
class Teacher(BaseModel): """ 教师表 教师与课程多对一 """ __tablename__ = 'teachers' name = models.Column(models.String(32)) age = models.Column(models.Integer) gender = models.Column(models.Integer) #0男 1女 -1未知 course_id = models.Column(models.Integer, models.ForeignKey('course.id')) #教师,课程多对一映射
class Course(Base): __tablebname__ = "course" name = models.Column(models.String(32), unique=True) description = models.Column(models.Text) to_teacher = models.relationship("Teacher", backref="to_course_data") to_student = models.relationship("Students", secondary=Stu_Cou, backref=models.backref("to_course", lazy="dynamic"), lazy="dynamic")
class Course(BaseModel): __tablename__ = 'course' lable = models.Column(models.String(32)) description = models.Column(models.Text) to_teacher = models.relationship('Teacher', backref='to_course1') to_student = models.relationship('Student', secondary=Stu_Cou, backref=models.backref('to_course', lazy='dynamic'), lazy='dynamic')
class Students(BaseModel): __tablename__ = 'students' #学生表名 #id=models.Column(models.Integer,primary_key=True,autoincrement=True)#学生id name = models.Column(models.String(32)) #学生姓名 age = models.Column(models.Integer) #学生年龄 gender = models.Column(models.Integer) #学生性别 has_id = models.Column(models.Integer, nullable=True) #1是有id,0是没有id has_school = models.Column(models.Integer, default=1) #1是有学籍,0是没有学籍 #与考勤表是一对多的关系 to_attendance = models.relationship('Attendance', backref='to_students') #与假条表是一对多的关系 to_ask = models.relationship('Ask', backref='to_students')
class VacationTip(BaseModel): __tablename__ = "vacationTip" vacation_id = models.Column(models.Integer) vacation_name = models.Column(models.String(32)) vacation_type = models.Column(models.String(32)) vacation_start = models.Column(models.String(32)) vacation_deadline = models.Column(models.String(32)) vacation_description = models.Column(models.Text) vacation_phone = models.Column(models.String(32)) vacation_status = models.Column(models.Integer) vacation_day = models.Column(models.Integer)
class Leave(BaseModel): __tablename__ = "leave" request_id = models.Column(models.Integer) #请假人id request_name = models.Column(models.String(32)) #请假人姓名 request_type = models.Column(models.String(32)) #请假类型 request_start_time = models.Column(models.String(32)) #起始时间 request_end_time = models.Column(models.String(32)) #结束时间 request_days = models.Column(models.String(32)) #请假天数 request_description = models.Column(models.Text) #请假原因 request_phone = models.Column(models.String(32)) #联系方式 request_status = models.Column(models.String(32)) #假条状态
def test_update_column(column_id: int, column_name: str, status_code: int, field: str, value: Union[str, dict], monkeypatch, test_app: TestClient): mock_column = models.Column(id=1, column_name='Pre-Change', column_pos=0, project_id=1) def mock_read(*args): if column_id == 0: return None return mock_column def mock_update(*args): mock_column.column_name = column_name return mock_column monkeypatch.setattr(crud, 'read', mock_read) monkeypatch.setattr(crud, 'update', mock_update) payload = json.dumps({'column': {'column_name': column_name}}) response = test_app.put(f'/columns/{column_id}', data=payload) assert response.status_code == status_code assert response.json()[field] == value
class Course(BaseModel): __tablename__ = 'course' # 课程表名 #id = models.Column(models.Integer, primary_key=True, autoincrement=True) lable = models.Column(models.String(32)) description = models.Column(models.Text) updatetime = models.Column(models.DateTime, default=datetime.timezone) #反向映射字段,一对多关系查询 to_teacher = models.relationship( 'Teacher', #映射表 backref='to_course', #反向映射字段,通过该字段查询当表的内容 lazy='dynamic') #多对多关系查询 to_students = models.relationship('Students', secondary=Stu_Cou, backref=models.backref("to_course", lazy='dynamic'), lazy='dynamic')
class Base(models.Model): __abstract__ = True id = models.Column(models.Integer, primary_key=True, autoincrement=True) def saved(self): db = models.session() db.add(self) db.commit()
class Teacher(BaseModel): __tablename__ = 'teacher' #id = models.Column(models.Integer, primary_key=True, autoincrement=True) name = models.Column(models.String(32)) # 老师姓名 age = models.Column(models.Integer) # 老师年龄 gender = models.Column(models.Integer) # 老师性别0男,1女,-1不知道 description = models.Column(models.Text) #老师简介信息 course_id = models.Column(models.Integer, models.ForeignKey('course.id')) #专业与老师一对多关系 # 多对多关系查询 to_students = models.relationship('Students', secondary=Stu_Tea, backref=models.backref("to_teacher", lazy='dynamic'), lazy='dynamic') # 与假条表是一对多的关系 to_ask = models.relationship('Ask', backref='to_teacher')
class Course(BaseModel): #课程表 __tablename = "course" label = models.Column(models.String(32)) description = models.Column(models.Text) #双向映射 to_teachers = models.relationship( #relationship关联关系relationship 'Teachers', #映射类的名称和类名一致#双向映射 backref='to_course') #教师类映射到该表 #双向映射语法(一对多):字段名=models.relationship( #"映射的类名", #backref="本表名") to_student = models.relationship( "Students", secondary=Stu_Cou, #多对多关系表 backref=models.backref("to_course", lazy="dynamic"), lazy="dynamic")