菏泽市住房和城乡建设路网站,杭州建电商网站多少钱,网站免费的,西地那非片能延时多久每次吃多少源码见#xff1a;fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统
梳理下思路 1.判断是否登录 2.课程是否存在 3.如果是回复#xff0c;查看回复是否存在 4.是否有权限 5.发起评论 首先新增pydantic模型
class Cour…源码见fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统
梳理下思路 1.判断是否登录 2.课程是否存在 3.如果是回复查看回复是否存在 4.是否有权限 5.发起评论 首先新增pydantic模型
class CourseCommentModel(BaseModel):发起评论参数id: intcomment: str Field(min_length1)pid: Optional[int] None
其次实现主要逻辑 def to_comment_method(comment: CourseCommentModel, user: UsernameRole, db: Session):发起评论db_user get_by_username(db, user.username)db_course get_course_by_id(db, comment.id)if not db_course:return response(code101401, message课程不存在)if db_course.owner db_user.id and comment.pid is None:return response(code101404, message自己不能评论自己的课程)if comment.pid:pid_course get_course_by_id(db, comment.pid)if not pid_course:return response(code101405, message回复的评论不存在)return create_comment(db, comment, db_user.id)return create_comment(db, comment, db_user.id)def create_comment(db: Session, comment: CourseCommentModel, user: int):保存评论# 前提自己不能给自己的课程发起评论但是发起评论后可以给自己的评论回复try:to_db_comment CourseComment(coursecomment.id,useruser,pidcomment.pid,contextcomment.comment)to_db_comment.user userdb.add(to_db_comment)db.commit()db.refresh(to_db_comment)except:logger.warning(fmethod create_comment error: {traceback.format_exc()})return response(code101402, message评论失败)return response()
最后实现接口api
course_router.post(/course_comment, summary发起评论)
def to_comment(comment: CourseCommentModel, user: UsernameRole Depends(get_current_user),db: Session Depends(create_db)):return to_comment_method(comment, user, db)
测试