FastAPI(八十)實戰開發《在線課程學習系統》接口開發-- 課程列表

一、查詢所有課程列表


邏輯就是返回所有課程

        那麼對應的crud

def getallcourse(db:Session):   
 return db.query(Course).filter(Course.status == True).all()

接口的實現代碼

@courseRouter.get("/list")
async  def list(db:Session=Depends(get_db)):
    allcouese=getallcourse(db)
    all_course=[]
    if len(allcouese)>0:
        for item in allcouese:
            coursedetail = CousesDetail(id=item.id,
                                        name=item.name,
                                        icon=item.icon, desc=item.desc, catalog=item.catalog,
                                        onsale=item.onsale, owner=get_user(db, item.owner).username,
                                        likenum=item.likenum)
            all_course.append(coursedetail)
    return reponse(code=200,message='成功',data=jsonable_encoder(all_course))

  

 這個接口其實實現的很簡單。

        課程列表除了返回所有的課程,如果是學生還應該返回自己的課程列表。

        那麼我們看下如何實現

          對應的crud爲

def get_student_all(db: Session,user:int):
    return db.query(Studentcourse).filter(Studentcourse.students == user,
                                          Studentcourse.status == False).all()

  對應的接口是

@courseRouter.get("/courselist")
async  def courselist(user: UsernameRole = Depends(get_cure_user),db:Session=Depends(get_db)):
    if user.role=="教師":
        return reponse(code=200, message='成功', data='')

    users=get_user_username(db,user.username)

    allconut=get_student_all(db,users.id)
    all_course = []
    if len(allconut) > 0:
        for item in allconut:
            one=db_get_course_id(db,item.course)
            coursedetail = CousesDetail(id=one.id,
                                        name=one.name,
                                        icon=one.icon, desc=one.desc, catalog=one.catalog,
                                        onsale=one.onsale, owner=get_user(db, one.owner).username,
                                        likenum=one.likenum)
            all_course.append(coursedetail)
    return reponse(code=200, message='成功', data=jsonable_encoder(all_course))

  

其實還可以去查詢老師所有的上架的課程的列表。

這裏不再做代碼羅列,很簡單的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章