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。

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

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

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

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

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

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

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

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

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

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

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

《中学生可以这样学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程序设计课程教学内容组织与教学方法实践

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值