FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
一、课程上架
我们梳理看下上架的逻辑
1.判断是否登录 2.判断角色权限 3.判断课程是否存在 4.判断课程是否上架 5.判断是否是自己的课程
那么我们看下如何实现?
@courseRouter.get(path="/onshelf/{id}") async def offshelf(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=102104,message='权限不足',data='') couses=db_get_course_id(db,id) if not couses: return reponse(code=102101, message='课程不存在', data='') if couses.onsale is True: return reponse(code=102102, message='课程已经上架', data='') if couses.owner !=users.id: return reponse(code=102103, message='自己只能上架自己的课程', data='') couses.onsale=True db.commit() db.refresh(couses) return reponse(code=200, message='成功', data=couses.id)
这样我们就完成了课程的上架。有了上架肯定有下架的功能,我们看下如何实现下架。
二、课程下架
梳理下对应的逻辑
1.判断是否登录 2.判断角色权限 3.判断课程是否存在 4.判断课程是否下架 5.判断是否是自己的课程
那么对应的代码如何实现呢?
@courseRouter.get(path="/offshelf/{id}") async def offshelf(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=102204,message='权限不足',data='') couses=db_get_course_id(db,id) if not couses: return reponse(code=102201, message='课程不存在', data='') if couses.onsale is False: return reponse(code=102202, message='课程已经下架', data='') if couses.owner !=users.id: return reponse(code=102203, message='自己只能下架自己的课程', data='') couses.onsale=False db.commit() db.refresh(couses) return reponse(code=200, message='成功', data=couses.id)
这样我们就完成了课程的下架的开发。
到这里我们课程相关的所有的接口都完成了开发。接下来我们会分享测试部署相关。