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

Posted 北漂的雷子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论相关的知识,希望对你有一定的参考价值。

 梳理下思路:

1.判断是否登录
2.判断课程是否存在
3.如果回复查看回复的是否存在
4.校验是否有权限
5.评论成功

 

对应的pydantic类如下

class Coursecomment(BaseModel):
   id: int
   comments: str
   pid: Optional[int]

对应的crud

def createcomments(db: Session, cousecoment: Coursecomment, user: id):
    comments = Commentcourse(**cousecoment.dict())
    comments.users=user
    db.add(comments)
    db.commit()
    db.refresh(comments)
    return comments

  对应的代码实现。

@courseRouter.post(path="/comments")
async def comments(comments: Coursecomment,user: UsernameRole = Depends(get_cure_user),
                   db: Session = Depends(get_db)):
    if comments.comments == \'\':
        return reponse(code=101402, message=\'评论内容不能为空\', data=\'\')
    users = get_user_username(db, user.username)
    couses = db_get_course_id(db, comments.id)
    if couses:
        if couses.owner == users.id and comments.pid is None:
            return reponse(code=101404, message=\'自己不能评论自己的课程\', data=\'\')
        if comments.pid is not None:
            pid_course = get_cousecomments(db, comments.pid)
            if pid_course:
                createcomments(db, comments, users.id)
                return reponse(code=200, message=\'成功\', data=\'\')
            return reponse(code=101405, message=\'回复的评论不存在\', data=\'\')
        createcomments(db, comments, users.id)
        return reponse(code=200, message=\'成功\', data=\'\')
    return reponse(code=101401, message=\'课程id不存在\', data=\'\')

 

以上是关于FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论的主要内容,如果未能解决你的问题,请参考以下文章

FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论

FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程

FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发

客快物流大数据项目(七十八):Hue简介

JavaScript学习(七十八)—实现对数据的浅拷贝和深拷贝

《C#零基础入门之百识百例》(七十八)委托事件实例练习3 -- 观察者模式