Python+django网页设计入门(20):使用WebSocket创建多人在线聊天室

技术要点:

1)安装与使用channels及其依赖的软件和扩展库;

2)使用channels实现WebSocket;

3)使用WebSocket实现在线聊天室;

4)检测用户是否登录;

5)异步编程,相关基础知识可以参考《Python程序设计开发宝典》;

5)设置黑名单。

=====================

1、进入cmd模式,执行命令pip install channels,安装channels以及相应的依赖库,在这个过程中,twisted库很容易出问题,所以,先到https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下载轮子文件放到Python安装目录的scripts文件夹中,执行pip命令离线安装twisted库,然后再安装channels。

2、下载并安装Redis,地址:https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi,在安装过程中注意把Redis安装路径添加到环境变量PATH中,并保持默认端口6379不变。

3、安装扩展库channels_redis及其依赖库。

4、新建应用apps\ws\chatroom及其相应的文件,文件夹结构如下

5、修改网站项目的settings.py,增加channels和chatroom应用。

6、修改网站项目的settings.py,配置ASGI_APPLICATION和CHANNEL_LAYERS。

7、执行manage.py命令,更新数据库

8、在网站项目下创建文件routing.py,内容如图所示

9、创建模板文件apps\ws\chatroom\templates\chatroom\index.html,内容如图所示

10、创建模板文件apps\ws\chatroom\templates\chatroom\room.html,内容如下

11、修改文件apps\ws\chatroom\models.py,定义聊天模型,内容如下

12、修改文件apps\ws\chatroom\admin.py,内容如下,使得后台管理员登录之后可以看到聊天室的聊天记录。

13、修改apps\ws\chatroom\urls.py文件内容如下

14、修改apps\ws\chatroom\views.py文件,内容如下

15、修改apps\ws\chatroom\routing.py文件,内容如下

16、修改apps\ws\chatroom\consumers.py文件,内容如下

17、在PyCharm中运行网站,界面如下,注意红线处和之前课程中运行界面的不同。

19、进入聊天室主界面http://127.0.0.1:8000/chatroom/

20、未登录用户的聊天界面

21、黑名单用户的聊天界面

22、打开两个不同的浏览器,使用不同的用户身份登录,然后聊天,界面如下

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2019-03-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券