黑龙江做网站,做博客和做网站,网站搜索量查询,怎么建设局域网网站源码见#xff1a;fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统
加入课程
我们先看下加入课程 1.是否登录 2.课程是否存在 3.是否已经存在 4.添加 首先实现逻辑
def get_student_course(db: Session, course: int…源码见fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统
加入课程
我们先看下加入课程 1.是否登录 2.课程是否存在 3.是否已经存在 4.添加 首先实现逻辑
def get_student_course(db: Session, course: int, student: int):查询学生名下某个课程return db.query(StudentCourse).filter(StudentCourse.course course, StudentCourse.student student,StudentCourse.status False).first()def add_student_course(course_id: int, user: UsernameRole, db: Session):添加课程if user.role 教师:return response(code101503, message老师不能加入课程)db_course get_course_by_id(db, course_id)if not db_course:return response(code101501, message课程不存在)db_user get_by_username(db, user.username)exists get_student_course(db, db_course.id, db_user.id)if exists:return response(code101502, message课程不能重复加入)try:s_course StudentCourse(studentdb_user.id,coursedb_course.id)db.add(s_course)db.commit()db.refresh(s_course)except:logger.warning(f加入课程{db_course.name} 失败)return response(code101504, message课程加入失败)return response()然后实现接口api
course_router.post(/student_course, summary加入课程)
def add(course_id: int, user: UsernameRole Depends(get_current_user), db: Session Depends(create_db)):return add_student_course(course_id, user, db)
测试 退出课程
接下来看下退出课程 1.是否登录 2.登录用户必须是学生才可以退出 3.课程是否存在于学生的课程表 4.存在则退出 还是先实现逻辑
def del_student_course(course_id: int, user: UsernameRole, db: Session):退出课程if user.role 老师:return response(code101603, message老师不能退出课程)db_user get_by_username(db, user.username)db_student_course get_student_course(db, course_id, db_user.id)if not db_student_course:return response(code101602, message课程不在自己课表内)try:db_student_course.status Truedb_student_course.update_time datetime.now()db.add(db_student_course)db.commit()db.refresh(db_student_course)except:logger.warning(f退出课程{course_id} 失败)return response(code101601, message退出课程失败)return response()再实现接口api
course_router.put(/student_course, summary退出课程)
def out(course_id: int, user: UsernameRole Depends(get_current_user), db: Session Depends(create_db)):return del_student_course(course_id, user, db)
测试 以上就是加入课程和退出课程的接口实现