当前位置:   article > 正文

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

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

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

查询所有课程列表

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

  1. def get_all_courses(db: Session):
  2. """查询所有课程列表"""
  3. try:
  4. all_courses = get_all(db)
  5. to_client = []
  6. if all_courses:
  7. for _ in all_courses:
  8. course_detail = CourseDetail(
  9. id=_.id,
  10. name=_.name,
  11. icon=_.icon,
  12. desc=_.desc,
  13. catalog=_.catalog,
  14. onsale=_.onsale,
  15. owner=get_by_uid(db, _.owner).username,
  16. like_num=_.like_num
  17. )
  18. to_client.append(course_detail.dict())
  19. except:
  20. logger.warning(f"查询失败:{traceback.format_exc()}")
  21. return response(code=101701, message="查询失败")
  22. return response(data=to_client)

接口api

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

测试:

查询学生自己的课程列表

逻辑也比较简单

  1. def db_student_like(db: Session, user_id: int):
  2. """学生加入的所有课程"""
  3. return db.query(StudentCourse).filter(StudentCourse.student == user_id, StudentCourse.status == False).all()
  4. def get_student_like(user: UsernameRole, db: Session):
  5. """查询学生加入的所有课程"""
  6. if user.role == "老师":
  7. return response(code=101701, message="只有学生可以查看自己加入的课程列表")
  8. try:
  9. db_user = get_by_username(db, user.username)
  10. student_likes = db_student_like(db, db_user.id)
  11. to_client = []
  12. if student_likes:
  13. for _ in student_likes:
  14. db_course = get_course_by_id(db, _.course)
  15. course_detail = CourseDetail(
  16. id=db_course.id,
  17. name=db_course.name,
  18. icon=db_course.icon,
  19. desc=db_course.desc,
  20. catalog=db_course.catalog,
  21. onsale=db_course.onsale,
  22. owner=get_by_uid(db, db_course.owner).username,
  23. like_num=db_course.like_num
  24. )
  25. to_client.append(course_detail.dict())
  26. except:
  27. logger.warning(f"method get_student_like error: {traceback.format_exc()}")
  28. return response(code=101702, message="查询失败")
  29. return response(data=to_client)

接口api

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

测试

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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号