• FastAPI(七十)实战开发《在线课程学习系统》接口开发留言功能开发


    在之前的文章: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='')
    

      

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

  • 相关阅读:
    discuz_ucenter_api_for_java的中文问题
    java的编码问题详解
    java的泛型的技巧
    向maven中央仓库提交jar
    Java并发之FutureTask
    java并发之Semaphore
    centos中JDK版本冲突的问题
    C++中嵌入Python
    boost::python的使用
    c++调用python引号的问题
  • 原文地址:https://www.cnblogs.com/leiziv5/p/15941948.html
Copyright © 2020-2023  润新知