FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
一、课程上架
我们梳理看下上架的逻辑
1 2 3 4 5 | 1. 判断是否登录 2. 判断角色权限 3. 判断课程是否存在 4. 判断课程是否上架 5. 判断是否是自己的课程 |
那么我们看下如何实现?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @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 | 1. 判断是否登录 2. 判断角色权限 3. 判断课程是否存在 4. 判断课程是否下架 5. 判断是否是自己的课程 |
那么对应的代码如何实现呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @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 ) |
这样我们就完成了课程的下架的开发。
到这里我们课程相关的所有的接口都完成了开发。接下来我们会分享测试部署相关。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?