您的位置:首页 > 房产 > 建筑 > FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表

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

2024/12/23 14:17:08 来源:https://blog.csdn.net/myli_binbin/article/details/140694241  浏览:    关键词:FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统"

查询所有课程列表

逻辑就是返回所有课程,也很简单,直接上代码

def get_all_courses(db: Session):"""查询所有课程列表"""try:all_courses = get_all(db)to_client = []if all_courses:for _ in all_courses:course_detail = CourseDetail(id=_.id,name=_.name,icon=_.icon,desc=_.desc,catalog=_.catalog,onsale=_.onsale,owner=get_by_uid(db, _.owner).username,like_num=_.like_num)to_client.append(course_detail.dict())except:logger.warning(f"查询失败:{traceback.format_exc()}")return response(code=101701, message="查询失败")return response(data=to_client)

接口api

@course_router.get("/student_course/all", summary="查询所有课程")
def get_all(db: Session = Depends(create_db)):return get_all_courses(db)

测试:

查询学生自己的课程列表

逻辑也比较简单

def db_student_like(db: Session, user_id: int):"""学生加入的所有课程"""return db.query(StudentCourse).filter(StudentCourse.student == user_id, StudentCourse.status == False).all()def get_student_like(user: UsernameRole, db: Session):"""查询学生加入的所有课程"""if user.role == "老师":return response(code=101701, message="只有学生可以查看自己加入的课程列表")try:db_user = get_by_username(db, user.username)student_likes = db_student_like(db, db_user.id)to_client = []if student_likes:for _ in student_likes:db_course = get_course_by_id(db, _.course)course_detail = CourseDetail(id=db_course.id,name=db_course.name,icon=db_course.icon,desc=db_course.desc,catalog=db_course.catalog,onsale=db_course.onsale,owner=get_by_uid(db, db_course.owner).username,like_num=db_course.like_num)to_client.append(course_detail.dict())except:logger.warning(f"method get_student_like error: {traceback.format_exc()}")return response(code=101702, message="查询失败")return response(data=to_client)

接口api

@course_router.get("/student_course", summary="查询学生加入的所有课程")
def get_student_like_course(user: UsernameRole = Depends(get_current_user), db: Session = Depends(create_db)):return get_student_like(user, db)

测试

以上就是查询所有课程以及学生加入的课程接口 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com