FastAPI(八十二)實戰開發《線上課程學習系統》介面開發-- 課程上架下架
阿新 • • 發佈:2022-04-04
一、課程上架
我們梳理看下上架的邏輯
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)
這樣我們就完成了課程的下架的開發。
到這裡我們課程相關的所有的介面都完成了開發。接下來我們會分享測試部署相關。