FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言
之前FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发分享了留言开发,这次我们分享查看留言
梳理这里的逻辑,这个接口要依赖登录。
1 2 3 4 5 | 1. 判断用户是否登录 2. 判断对应 id 是否存在,不存在返回对应的错误 3. 判断是否是当前用户的留言,或者接受的方是自己 4. 返回内容后,同时变成已读。 5. 如果读了且回复了,要带回复的内容 |
梳理后发现,之前在接口设计的时候,有些欠缺,查看留言,是查看单个的留言,查看留言后,对应的留言变成已读状态。那么我们这个都需要传递一个参数,这个参数应该是留言的id。
在之前设计返回状态码的时候,发现状态码有缺失,我们增加下缺失的。
状态码 | 含义 |
---|---|
200 | 成功 |
100601 | 留言不存在 |
100602 | 权限不足 |
最后的pydantic代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Messages(BaseModel): id : int senduser: str acceptusers: str read: bool sendtime: str addtime: str context: str class MessagePid(Messages): pid: int class MessageOne(Messages): pid: List [MessagePid] = [] |
根据最后梳理的逻辑去开发对应的功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | @usersRouter .get(path = "/viewmessage" ) async def viewmessage( id : int , user: UsernameRole = Depends(get_cure_user), db: Session = Depends(get_db)): useris = get_user_username(db,user.username) message = get_message(db, id ) if not message: return reponse(code = 100601 , message = '留言不存在' , data = '') if message.acceptusers ! = useris. id and message.senduser ! = useris. id : return reponse(code = 100602 , message = '权限不足' , data = '') message.read = True db.commit() db.refresh(message) all_pid = get_pid_message(db, message. id ) messageone = MessageOne( id = message. id , senduser = get_user(db,message.senduser).username, acceptusers = get_user(db, message.acceptusers).username, read = message.read, sendtime = message.sendtime, addtime = str (message.addtime), context = message.context) if len (all_pid) > 0 : allpidlist = [] for item in all_pid: message = MessagePid( id = message. id , senduser = item.senduser.username, acceptusers = item.acceptusers.username, read = item.read, sendtime = item.sendtime, addtime = item.addtime, context = item.context, pid = item.pid) allpidlist.append(message) messageone.pid = allpidlist return reponse(code = 200 , message = '成功' , data = jsonable_encoder(messageone)) |
每个功能开发,都会梳理好对应的逻辑功能梳理。快速的进行开发。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2018-02-27 Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)
2017-02-27 美团面试总结