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

一、查询所有课程列表


逻辑就是返回所有课程

        那么对应的crud

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

接口的实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
@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为

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

  对应的接口是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@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))

  

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

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

 

posted @   北漂的雷子  阅读(286)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示