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

2019年3月8日-10日公众号送书活动中小学生Python课应该学什么

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

前导课程:

Python+django网页设计入门(19):创建新模型扩展自带用户表的字段

Python+django网页设计入门(18):自定义模板过滤器

Python+django网页设计入门(17):模板语法及应用

Python+django网页设计入门(16):优化设计复用分页代码

Python+django网页设计入门(15):公用模板设计与使用

Python+django网页设计入门(14):使用中间件对抗爬虫

Python+django网页设计入门(13):表单、修改密码

Python+django网页设计入门(12):使用Bootstrap和jQuery

Python+django网页设计入门(11):在线考试与自动评分

Python+django网页设计入门(10):分页显示

Python+django网页设计入门(9):自定义反爬虫功能

Python+django网页设计入门(8):网站项目文件夹布局

Python+django网页设计入门(7):常用ORM操作

Python+django网页设计入门(6):文件上传与数据导入

Python+django网页设计入门(5):自定义用户注册与登录功能

Python+django网页设计入门(4):用户登录与登录验证

Python+django网页设计入门(3):使用SQLite数据库

Python+django建站入门篇(2):素数判断

Python+django建站入门篇:Hello world

Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤

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

技术要点:

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。

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


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及其依赖库。

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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

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


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

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



温馨提示

关注本公众号“Python小屋”,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的800篇技术文章列表,通过“最新资源”==>“微课专区”可以免费观看300节Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”==>“教学资源”可以查看Python教学资源。

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


--------董付国老师Python系列图书--------

1)《Python程序设计(第2版)》清华大学出版社

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


2)《Python可以这样学》清华大学出版社

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


3)《Python程序设计基础(第2版)》清华大学出版社

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

4)《中学生可以这样学Python》清华大学出版社,配套微课:《中学生可以这样学Python》84节微课免费观看地址

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


5)《Python程序设计开发宝典》清华大学出版社

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


6)《玩转Python轻松过二级》清华大学出版社

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


7)《Python程序设计基础与应用》机械工业出版社

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


8)《Python程序设计实验指导书》清华大学出版社(预计2019年3月出版)

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


9)《Python编程基础与案例集锦(中学版)》电子工业出版社(2019年3月第一版第一次印刷)

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


《中学生可以这样学Python》84节微课免费观看地址

非计算机专业《Python程序设计基础》教学参考大纲

计算机相关专业“Python程序设计”教学大纲(参考)

《Python程序设计》实验指导书(30个实验)

《Python程序设计基础与应用》课后习题答案

Python课程期末考试编程题自动批卷原理与实现模板

“Python小屋”免费资源汇总(截至2018年11月28日)


系列教学PPT:

1900页Python系列PPT分享一:基础知识(106页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享七:文件操作(132页)

1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)

报告PPT(163页):基于Python语言的课程群建设探讨与实践

报告PPT(123页):Python编程基础精要

2000页Python系列PPT分享九:(GUI编程)(122页)

Python实验项目1例:使用进程池统计指定范围内素数的个数

(PPT)Python程序设计课程教学内容组织与教学方法实践


你可能感兴趣的:(Python+django网页设计入门(20):使用WebSocket创建多人在线聊天室)