# student_dao:所有数据库的逻辑 from students.model.students_model import Students from students.schema.students_request import * # 记得加校验 # 查询 def get_student_dao( s , db): q = db.query(Students) if s.get('sid'): q = q.filter( Students.sid == s.sid ) if s.get('student_name'): q = q.filter( Students.student_name == s.student_name ) if s.get('class_name'): q = q.filter(Students.class_name == s.class_name) if s.get('job_open_time'): q = q.filter(Students.job_open_time == s.job_open_time) if s.get('offer_issue_time'): q = q.filter(Students.offer_issue_time == s.offer_issue_time) if s.get('company_name'): q = q.filter(Students.company_name == s.company_name) if s.get('salary'): q = q.filter(Students.salary >= s.salary) s1 = q.all() if s1: return [{ "学生编号": i.sid , "学生姓名": i.student_name , "学生班级": i.class_name , "就业开放时间": i.job_open_time , "offer下发时间": i.offer_issue_time , "就业公司名称": i.company_name , "就业薪资": i.salary } for i in s1 ] # 新增 def add_student_dao( s , db): try: phone = s.get("student_phone") if not phone: return None else: s1 = Students( **s ) db.add(s1) except Exception: # 这里可以加日志 db.rollback() return False else: db.commit() db.refresh(s1) # 从数据库再拉一次数据 return s1 # 更新 def update_student_dao( id , update_data , db): try: rows = db.query( Students ).filter( Students.sid == id ).update( update_data ) except Exception: db.rollback() return False else: db.commit() return f"更新了{rows}条学生资料。" # 逻辑删除/软删除 def delete_student_dao(sid, db): try: rows = db.query( Students ).filter( Students.sid == sid ).delete() except Exception: db.rollback() rows = 0 else: db.commit() finally: return f"删除了{rows}条学生资料。"