推广 热搜: page  音视频  使用  个数  搜索引擎  选择  企业  可以  父亲  百度 

Python 在线聊天室开发(二):漫游聊天记录

   日期:2024-12-20     作者:ks5jw    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/8698.html
核心提示:在上一篇文章中,我们借助 Django 3 + Channels + Redis(Memurai ) 实现了一个网页在线聊天室。但是这个聊天室的功能还稍显简陋

在上一篇文章中,我们借助 Django 3 + Channels + Redis(Memurai ) 实现了一个网页在线聊天室

但是这个聊天室的功能还稍显简陋:

今天咱们就来把保存和漫游聊天记录这一功能实现了。

首先,在 chat 应用下的 models.py 文件中定义一个聊天消息类:

然后执行迁移命令以在数据库中生成数据表:

有了聊天记录表之后,对于漫游聊天记录的过程就很简单了:

我们首先来处理数据的入库

之前的代码中,我们在 chat 应用中的 consumers.py 文件中通过 ChatConsumer 这个类来实现 WebSocket 的所有处理。

后端在接收到消息之后直接将消息推送给了对应房间号,现在我们需要加上数据存储的步骤。

首先,在 ChatConsumer 类中新建一个名为 save_msg() 的方法,在这个方法里面我们接收「用户名」、「房间号」、「消息」三个参数,然后将其写入到 Message 数据模型中

sync_to_async 装饰器用于将同步方法转换为异步方法,需要在文件头部引入:

保存消息的方法创建好之后,我们在 ChatConsumer 类的 receive() 方法中间进行调用:

这样,WebSocket 在接收到消息之后,会首先将消息存储到数据库,再推送出去

数据库中有了数据,数据的查询就好办了。

我们在聊天室的视图函数中对指定房间号的历史消息进行查询(chat/views.py):

前端渲染聊天记录

我们现在可以在前端 HTML 模板中渲染聊天记录了。

相关代码如下所示:

这样,我们在进入到指定房间的页面后,就会把历史聊天消息给漫游同步。

最终效果如下所示:

在本篇文章中,我们通过 Django 的数据模型实现了聊天室的聊天记录漫游。

在接下来的文章中,我们还将继续对这个使用 Python 开发的在线聊天室进行开发和优化。

比如:

敬请期待!

本文地址:http://ww.kub2b.com/news/8698.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号