在之前的文章:FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码,这次分享留言功能开发

我们能梳理下对应的逻辑

1.校验用户是否登录
2.校验留言的用户是否存在
3.校验用户是否和留言的用户一致
4.校验留言长度是否符合要求
5.增加留言
        那么看下对应的需要新增的pydantic。
class MessageConent(BaseModel):
id:int
connect:str

    对于crud,这次没有需要新增的,我们用的都是之前的代码中已经有的,所以这里不在过多的分析。接着我们看下对应的接口实践的代码。

@usersRouter.get(path='/addmessage')
async def addmessage(messageconent:MessageConent,
user:UsernameRole= Depends(get_cure_user),
db: Session = Depends(get_db)):
if len(messageconent.connect)>500 and len(messageconent.connect)>5:
return reponse(code=100502,message='留言长度在5-500个字符长度',data='')
user_name = get_user_username(db, user.username)
rev_user=get_user(db,messageconent.id)
if not rev_user:
return reponse(code=100503,message='留言用户不存在',data='')
if rev_user.id==user_name.id:
return reponse(code=100501,message='自己不能给自己留言',data='')
times = datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S")
message = Message(senduser=user_name.id,
acceptusers=rev_user.id,
context=messageconent.connect,
sendtime=times,addtime=times,read=False)
db.add(message)
db.commit()
db.refresh(message)
return reponse(code=200,message="成功",data='')

  

这里面的本次分享的内容比较简单,比之前的一对一的聊天要简单的多,当然了,这里的如果提升,就是一对一聊天,那么这里就需要处理留言信息,一对一的时时对话,之前的分享有讲过,但是不在线的一对一聊天,就是一对一的留言。

最新文章

  1. ArcEngine 岛状多边形内部环的获取
  2. 【python】编码
  3. Selenium2+python自动化15-select下拉框
  4. three Sum
  5. 微信消息处理JAXP-sax解析
  6. php 函数 array_slice
  7. (zz)Linux下Gcc生成和使用静态库和动态库详解
  8. 掌握这些知识,你的python水平能更上一层楼
  9. redis 系列4 数据结构之链表
  10. Session.Abandon和Session.Clear的实现和区别
  11. (已解决)Xcode 运行报错: clang: error: unknown argument: '-websockets'
  12. Linux Hadoop集群搭建第二步:--------SSH免密登陆
  13. [Delphi]实现使用TIdHttp控件向https地址Post请求[转]
  14. vue实现点击关注之后及时更新列表
  15. Android 编程下的代码混淆之(android-support-v4.jar)
  16. 2014Esri全球用户大会之影像和栅格
  17. django-DIL模板自定义过滤器,自定义标签,自定义包含标签
  18. Hello World 和 模块分解
  19. EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
  20. js判断浏览器类型以及语言

热门文章

  1. laravel html转pdf
  2. Java学习笔记:04面向对象-内部类_访问修饰符_final
  3. 详解Nacos 配置中心客户端配置缓存动态更新的源码实现
  4. BSOJ6388题解
  5. LGP5653口胡
  6. MacOS新功能“通用控制”,多台设备操作互联太方便了!
  7. Django基础六之cookie和session
  8. Grafana镜像在阿里云镜像站首发上线
  9. ubuntu忘记密码,用root修改Ubuntu密码
  10. 面试问题之计算机网络:HTTP和HTTPS的区别