• 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))
    

      

    其实还可以去查询老师所有的上架的课程的列表。

    这里不再做代码罗列,很简单的。

  • 相关阅读:
    Java中Date及Timestamp时间相关内容
    Struts2标签<s:select>显示List<String>的设置
    JOffice协同办公开发平台
    asp.net单点登录设想与构思
    JQuery 常用方法基础教程
    一个很好的Jquery学习的网站
    分页存储过程(提高性能)
    _EMIT伪指令
    一键清理源码目录
    MACBOOK安装WIN7(单系统)
  • 原文地址:https://www.cnblogs.com/leiziv5/p/16098440.html
Copyright © 2020-2023  润新知