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

 梳理下思路:

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

 

对应的pydantic类如下

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

对应的crud

1
2
3
4
5
6
7
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='')
复制代码

 

posted @   北漂的雷子  阅读(200)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示