标签:return get -- FastAPI db 课程 user student id
我们先看下加入课程
梳理下对应的逻辑
1.判断是否登录
2.判断课程是否存在
3.判断是否已经在列表
4.成功添加
进入正式的开发,我们首先看下curd
def get_student(db: Session, couese: int,user:int): return db.query(Studentcourse).filter(Studentcourse.course == couese, Studentcourse.students == user, Studentcourse.status == True).first() def add_student_course(db: Session, couese: int,user:int): studentcourse = Studentcourse(students=couese, course=user) db.add(studentcourse) db.commit() db.refresh(studentcourse) return studentcourse
接着,我们看下做后的业务是如何实现的
@courseRouter.get(path='/add/{id}') async def add(id:int,user: UsernameRole = Depends(get_cure_user), db: Session = Depends(get_db)): users=get_user_username(db,user.username) if user.role=='教师': return reponse(code=101503,message="老师不能加入课程",data='') couses=db_get_course_id(db,id) if not couses: return reponse(code=101501,message='课程id不存在',data='') userstudent=get_student(db,couses.id,users.id) if userstudent: return reponse(code=101502, message='课程不能重复加入', data='') reslut=add_student_course(db,couses.id,users.id) return reponse(code=200,message='成功',data=reslut.id)
我们来看下退出课程的接口实现
我们分析下这里的逻辑
1.判断是否登录 2.登陆用户必须是学生才可以退出 3.判断课程是否存在学生的课表 4.存在则退出
对应的crud需要新增
def rebck_couses(db:Session,student:Studentcourse): student.status=True db.add(student) db.commit() db.refresh(student) return student
那么我们按照上面的逻辑,对应的实际的代码就是
@courseRouter.get(path='/quit/{id}') async def quit(id:int,user: UsernameRole = Depends(get_cure_user), db: Session = Depends(get_db)): users = get_user_username(db, user.username) if user.role=="老师": return reponse(code=101603, message='老师不能退出课程', data='') couses = get_student(db, id,users.id) if not couses: return reponse(code=101602, message='课程不在自己列表', data='') reslut=rebck_couses(db,couses) return reponse(code=200, message='成功', data=reslut.id)
标签:return,get,--,FastAPI,db,课程,user,student,id 来源: https://www.cnblogs.com/leiziv5/p/16098429.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。