话很少说先上效果图演示html
项目
一、安装组建git
redis: yum install redis/apt install redisgithub
二、建立虚拟化环境并进入web
python3/python -m venv venvajax
source venv\bin\activeredis
三、安装第三方库数据库
pip install -r requirements.txtdjango
四、初始化json
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic
五、启动服务
gunicorn -w 5 -k gevent -b 0.0.0.0:9990 webchat.wsgi
六、访问
浏览器访问 http://ip:9990
整个项目中涉及的思路和知识点咱们在这里都一一分解为你们详细解说以下:
Django 基础
Django :一个可使 Web 开发工做愉快而且高效的 Web 开发框架,可以以最小的代价构建和维护高质量的 Web 应用
框架:软件开发工程师从平常的重复劳动中总结出快速的、模块化的、安全的软件开发模式
Django 是 Python 开发者的最佳 Web 框架
MVC
ORM
Object Relation Mapping (关系对象映射)
Mail (经过邮箱和验证码方式进行用户登陆验证)
开发者可为使用 Django 提供的 send_mail 函数发送邮件
使用方法
配置邮箱(setting.py)
发送
send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None)
注
Session & Cookie
实现用户认证机制
是什么?
WebSocket 是 HTML5 开始提供的一种在单个 TCP 链接上进行全双工通信的协议
为何须要?
HTTP 协议是一种无状态的、无链接的、单向的应用层协议。它采用了请
求/响应模型。通讯请求只能由客户端发起,服务端对请求作出应答处理
弊端
传统模式下, Web 应用程序经过频繁的 ajax 请求实现长轮询( 轮询是在 特定的时间间隔(如每1秒),由浏览器对服务器发出 HTTP 请求,而后由 服务器返回最新的数据给客户端的浏览器)
缺点
发出请求)
如何工做?
Web 浏览器和服务器都必须实现 WebSockets 协议来创建和维护连 接,因为 WebSockets 链接长期存在,与典型的 HTTP 链接不一样,对 服务器有重要的影响(任何 WebSockets 服务器都须要实现为异步服 务器,基于多线程或多进程的服务器没法适用于 WebSockets,由于 它旨在打开链接,尽量快地处理请求,而后关闭链接)
在 WebSocket 协议中, 浏览器和服务器只须要作一个握手的动做,而后,浏览器和服务器之间就造成了一条快速通道。二者之间就直接能够数据互相传送。
如何使用?
客户端 API (
一、建立 websocket 对象
var ws = new WebSocket(url, [protocol] );
二、属性
ws.readyState 表示链接状态
可选值:
ws.bufferedAmount 表示已被 send() 方法放入正在队列中等待传输,可是尚未发 出的 UTF-8 文本字节数
三、事件
四、方法
send ws.send() 使用链接发送数据
close ws.close() 关闭链接
dwebsocket 模块为 django 提供了 WebSocket 协议的实现
使用
一、安装
pip install dwebsocket
二、用法
使用 accept_websocket 或 require_websocket 装饰器修饰 view
request.is_websocket 方法用于判断是否为 websocket 协议
获取 websocket 链接对象
获取数据
发送数据
其余
Redis 是一个开源的,基于内存的,可持久化的,K-V 数据库
用途:
发布订阅:是一种消息通讯模式,发送者(pub)发送消息,缩 影订阅者(sub)均可以接收消息并处理
一、在 redis 客户端中使用
二、在 python 中使用
redis 模块
订阅
发布:
代码结构
app 定义(app.py)
配置(settings.py)
流程
一、打开登陆页面
二、发送验证码
三、登陆
路由(url.py)
视图-view.py
视图-models.py
视图-templates/login.html
流程
建立 websocket 链接到 msg/,同时注册 open, error, message 事件
当链接建立,调用 websocket.send 发送上线消息
用户填写消息,点击按钮,调用 websocket.send 方法发送聊天消息
urls.py 处理 url msg/ 到视图 msg
msg 视图接收和处理 websocket 消息,同时监听和处理 redis 订阅的 消息
获取 websocket 链接和发送消息(index.html)
路由处理(view.py)
消息显示处理(index.html)
你们对此项目分享有什么疑问的请准备好在本周三晚上咱们的 kk 大牛会为你们一一解答。
项目分享人:KK老师
多语言混搭开发工程师,多年 PHP、Python 项目开发经验,曾就任 360、绿盟科技,7年工做经验。擅长于 Web 安全开发、性能优化、分布式应用开发&设计等多方面,51Reboot 金牌讲师。
分享的时间
参与方式