做同业业务一般关注哪些网站,中国互联网协会举报中心,二级域名网站怎么投广告,深圳做网站可用乐云seo十年源码见#xff1a;fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统
课程编辑
先来看下课程编辑 1.判断是否登录 2.判断课程是否存在 3.是否有权限#xff08;只有自己可以修改自己的课程#xff09; 4.名称是否重复…源码见fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统
课程编辑
先来看下课程编辑 1.判断是否登录 2.判断课程是否存在 3.是否有权限只有自己可以修改自己的课程 4.名称是否重复 首先新增一个参数pydantic
class CourseEdit(Courses):id: int
其次增加主要逻辑 def edit_course(course: CourseEdit, db: Session, user: UsernameRole):编辑课程db_course get_course_by_id(db, course.id)if not db_course:return response(code101201, message课程不存在)db_user get_by_username(db, user.username)if db_user.id ! course.owner:return response(code101202, message权限不足)exists get_course_by_name(db, course.name)if exists:return response(code101203, message该课程名称已存在)try:# 这里只是修改课程的属性上架下架不能在这改db_course.catalog course.catalogdb_course.desc course.descdb_course.icon course.icondb_course.name course.namedb.commit()db.refresh(db_course)except:logger.warning(fmethod edit_course error{traceback.format_exc()})return response(code101204, message修改失败)return response()最后实现接口api
course_router.put(/, summary编辑课程)
def edit(course: CourseEdit,db: Session Depends(create_db),user: UsernameRole Depends(get_current_user)):return edit_course(course, db, user)
测试 查看评论
接下来看下查看评论 1.判断课程是否存在 2.存在返回所有评论 主要逻辑
def get_course_comment(course_id: int, db: Session):获取课程评论db_course get_course_by_id(db, course_id)if not db_course:return response(code101301, message课程不存在)comments get_comment_by_course_id(db, course_id)to_client []if comments:for _ in comments:detail_comment CourseCommentOut(id_.id,top_.top,userget_by_uid(db, _.user).username,pid_.pid,add_timestr(_.add_time),context_.context)to_client.append(detail_comment.dict())return response(datato_client)
因为course_schema.py中的CourseComment和models中的重名了所以做了修改
class CourseCommentOut(CourseCommentBase):id: inttop: intclass CourseDetail(Courses):id: intowner: str # 此处重写该字段返回给客户端时展示用户名而非idcomment: List[CourseCommentOut] []
实现api
course_router.get(/course_comment, summary查看课程评论)
def course_comment(course_id: int,db: Session Depends(create_db)):return get_course_comment(course_id, db)
测试
这样我们的课程编辑和查看评论接口就完成了