zl程序教程

您现在的位置是:首页 >  其他

当前栏目

FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表

2023-03-14 22:44:55 时间

前言

我们上一次分享了实战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))

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

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

系列实战课程

FastAPI(六十一)实战开发《在线课程学习系统》需求分析

FastAPI(六十二)实战开发《在线课程学习系统》梳理系统需要接口

FastAPI(六十三)实战开发《在线课程学习系统》设计数据库以及连接配置

FastAPI(六十四)实战开发《在线课程学习系统》基础架构的搭建

FastAPI(六十五)实战开发《在线课程学习系统》接口开发--用户注册接口开发

FastAPI(六十六)实战开发《在线课程学习系统》接口开发--用户登陆接口开发

FastAPI(六十七)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发

FastAPI(六十八)实战开发《在线课程学习系统》接口开发--修改密码

FastAPI(六十九)实战开发《在线课程学习系统》接口开发--留言功能开发

FastAPI(七十)实战开发《在线课程学习系统》接口开发-- 查看留言

FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言

FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 回复留言

FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 删除留言

FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 创建课程

FastAPI(七十五)实战开发《在线课程学习系统》接口开发-- 课程详情

FastAPI(七十六)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论

FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 评论

FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 加入课程

FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 退出课程

后记

发现问题,解决问题。遇到问题,慢慢解决问题即可。

欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识

如果你有问题可以留言或者加我微信:952943386。

2021,一起牛转钱坤,一起牛逼。

如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~