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='')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?