from day22.model.order_model import Order,User def add_student_dao(o,db): try: r = db.query(User).filter(User.id == o['userid']).all() if r: o1 = Order( **o) # 将字典解析成键值对关键字参数输入 title = xxx, userid = XXX db.add(o1) else: raise ValueError except: db.rollback() return False else: db.commit() return True def update_orders_dao(id,update_data,db): try: # 数据更新是有返回值的,返回的是影响的行数 rows = db.query( Order ).filter( Order.id == id ).update( update_data ) except: db.rollback() return False else: db.commit() return rows def get_orders_dao(id,order_title,db,page,page_size): q = db.query(Order) if id: q = q.filter( Order.id == id ) if order_title: q = q.filter( Order.title == order_title ) r = q.offset( (page-1)*page_size ).limit( page_size ).all() if r: return [{"order_id": i.id, 'order_title': i.title, "user_id": i.userid, "create_date": i.create_date, "update_date": i.update_date} for i in r] def delete_orders_dao(id,db): try: # 删除有返回值,删除的行数 rows = db.query(Order).filter(Order.id == id).delete() except: db.rollback() rows = 0 else: db.commit() finally: return rows