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程序设计课程教学内容组织与教学方法实践
Python+django网页设计入门(20):使用WebSocket创建多人在线聊天室相关推荐
- Python+django网页设计入门(19):创建新模型扩展自带用户表的字段
公众号送书活动火热进行中:新学期福利,送18本Python图书 ================== 前导课程: Python+django网页设计入门(18):自定义模板过滤器 Python+dja ...
- Python+django网页设计入门(18):自定义模板过滤器
前导课程: Python+django网页设计入门(17):模板语法及应用 Python+django网页设计入门(16):优化设计复用分页代码 Python+django网页设计入门(15):公用模 ...
- Python+django网页设计入门(17):模板语法及应用
前导课程: Python+django网页设计入门(16):优化设计复用分页代码 Python+django网页设计入门(15):公用模板设计与使用 Python+django网页设计入门(14):使 ...
- Python+django网页设计入门(16):优化设计复用分页代码
前导课程: Python+django网页设计入门(15):公用模板设计与使用 Python+django网页设计入门(14):使用中间件对抗爬虫 Python+django网页设计入门(13):表单 ...
- Python+django网页设计入门(15):公用模板设计与使用
前导课程: Python+django网页设计入门(14):使用中间件对抗爬虫 Python+django网页设计入门(13):表单.修改密码 Python+django网页设计入门(12):使用Bo ...
- Python+django网页设计入门(14):使用中间件对抗爬虫
前导课程: Python+django网页设计入门(13):表单.修改密码 Python+django网页设计入门(12):使用Bootstrap和jQuery Python+django网页设计入门 ...
- Python+django网页设计入门(13):表单、修改密码
前导课程: Python+django网页设计入门(12):使用Bootstrap和jQuery Python+django网页设计入门(11):在线考试与自动评分 Python+django网页设计 ...
- Python+django网页设计入门(12):使用Bootstrap和jQuery
文中有源码下载方式,请仔细寻找. 前导课程: Python+django网页设计入门(11):在线考试与自动评分 Python+django网页设计入门(10):分页显示 Python+django网 ...
- Python+django网页设计入门(11):在线考试与自动评分
前导课程: Python+django网页设计入门(10):分页显示 Python+django网页设计入门(9):自定义反爬虫功能 Python+django网页设计入门(8):网站项目文件夹布局 ...
最新文章
- CFCC百套计划4 Codeforces Round #276 (Div. 1) E. Sign on Fence
- Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
- 入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 介绍 (一)
- [leetcode双周赛]5311. 将数字变成 0 的操作次数
- 高等数学_第一章第3节_函数的极限
- 初中科技节计算机,初中科技节活动方案.doc
- [iOS]delegate和protocol
- EasyCVR调用Ehome协议接入的硬盘录像机设备录像无法播放,如何处理?
- pgadmin4 如何改成中文版
- Mac上使用Chrome浏览器截取长图
- 百度360争推1TB永久网盘
- Word——从任意页开始设置页码的方法
- Java基础篇---练习:类的设计
- 【图片新闻】俄罗斯的新型高超音速导弹每秒飞行近两英里,“锆石Zircon”很可能是不可阻挡的尖端防空武器
- 程序员过中秋 | 如何用代码绘制月亮?
- 会讲故事的前物理学家万维钢解读、推荐过的书24本,好书一半
- 怎样淡化疤痕留下的色素沉着
- APK安装包如何安装到安卓手机上
- 《RCLane:Relay Chain Prediction for Lane Detection》论文笔记
- va_start 用法
热门文章
- linux telnet mysql_Linux下安装telnet(傻瓜教程)
- mysql数据库的函数_详解数据库_MySQL: mysql函数
- php代理请求失败,http请求失败有哪些原因
- linux ip addr peer,CentOS 7 设置网络IP地址
- php microtime true输出说明,php使用microtime(true)查看代码执行时间
- linux svn启动失败,linux svn authorization failed错误
- laravel created_at 时间戳_Laravel 单行为控制器设计的魅力
- 天津市全国计算机等级报名时间,天津市2018年全国计算机等级考试报名时间及地点...
- SpringBoot 2 集成微信扫码支付
- 基于JAVA+SpringMVC+Mybatis+MYSQL的手表销售系统