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

简介: 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))


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


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

相关文章
|
存储 IDE API
最佳实践:通过 FastAPI APIRouter 提升开发效率
FastAPI 是一个现代的、高性能的 Python Web 框架,它提供了 APIRouter 来帮助组织和管理路由。APIRouter 是一个可用于组织和分组路由的类,使得代码结构更加清晰和可维护。本文将介绍 FastAPI APIRouter 的用法,包括实践案例以及在 IDE 编辑器中的运行步骤。
|
JSON API 网络架构
FastAPI+React全栈开发13 FastAPI概述
FastAPI是一个高性能的Python Web框架,以其快速编码和代码清洁性著称,减少了开发者错误。它基于Starlette(一个ASGI框架)和Pydantic(用于数据验证)。Starlette提供了WebSocket支持、中间件等功能,而Pydantic利用Python类型提示在运行时进行数据验证。类型提示允许在编译时检查变量类型,提高开发效率。FastAPI通过Pydantic创建数据模型,确保数据结构的正确性。FastAPI还支持异步I/O,利用Python 3.6+的async/await关键词和ASGI,提高性能。此外,
583 0
|
机器学习/深度学习 开发者 Python
FastAPI的小兄弟,开发命令行工具更给力
FastAPI的小兄弟,开发命令行工具更给力
382 0
FastAPI的小兄弟,开发命令行工具更给力
|
Python
FastAPI(11)- 函数参数类型是列表,但不使用 typing 中的 List,而使用 list,会怎么样?
FastAPI(11)- 函数参数类型是列表,但不使用 typing 中的 List,而使用 list,会怎么样?
283 0
FastAPI(11)- 函数参数类型是列表,但不使用 typing 中的 List,而使用 list,会怎么样?
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
|
存储 测试技术 数据安全/隐私保护
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
|
测试技术 数据安全/隐私保护
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
|
NoSQL Redis 数据库
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程

热门文章

最新文章