django使用channels实现通信的示例


Posted in Python onOctober 19, 2020

1.安装依赖包

pip install channels channels-redis

2.settings.py 修改加上支持

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'MyWeb.apps.MywebConfig',
  "channels",
]

django使用channels实现通信的示例

首先需要建立一个django项目。其中在你自己的app下面 生成consumers.py和routing.py配置文件。

consumers.py:相当于django的视图,也就是说所有的websocket路由过来的执行的函数都在consumers.py类似于django的视图views.py

routing.py:是websocket中的url和执行函数的对应关系。相当于django的urls.py,根据映射关系,当websocket的请求进来的时候,根据用户的请求来触发我们的consumers.py里的方法。

3.安装redis

redis 安装配置默认密码

yum install -y redis

[root@localhost ~]# vim /etc/redis.conf 开启远程
bind 0.0.0.0 
protected-mode no

redis-cli -h 192.168.1.20 -p 6379

4.接着配置settings.py 最底部加上这条。

django使用channels实现通信的示例

CHANNEL_LAYERS = {
  'default': {
    'BACKEND': 'channels_redis.core.RedisChannelLayer',
    'CONFIG': {
      "hosts": [('192.168.1.20', 6379)],
    },
  },
}

ASGI_APPLICATION = "MyWeb.routing.application"

接着简单的写一下,routing.py 里面

from channels.routing import ProtocolTypeRouter

application = ProtocolTypeRouter({
  # Empty for now (http->django views is added by default)
})

进入django shell 测试是否能连接到数据库

(venv) C:\Users\LyShark\PycharmProjects\MyProject>manage.py shell
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import channels.layers
>>> channel_layer = channels.layers.get_channel_layer()
>>> from asgiref.sync import async_to_sync
>>> async_to_sync(channel_layer.send)('test_channel', {'type': 'hello'})
>>> async_to_sync(channel_layer.receive)('test_channel')
{'type': 'hello'}
>>>

以上就是django使用channels实现通信的示例的详细内容,更多关于channels实现通信的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python使用Berkeley DB数据库实例
Sep 26 Python
Python获取文件ssdeep值的方法
Oct 05 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
python将字母转化为数字实例方法
Oct 04 Python
使用Python函数进行模块化的实现
Nov 15 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 Python
python实现测试工具(二)——简单的ui测试工具
Oct 19 #Python
python实现测试工具(一)——命令行发送get请求
Oct 19 #Python
基于Python制作一副扑克牌过程详解
Oct 19 #Python
Python实现壁纸下载与轮换
Oct 19 #Python
Python调用REST API接口的几种方式汇总
Oct 19 #Python
Python爬虫抓取论坛关键字过程解析
Oct 19 #Python
python MD5加密的示例
Oct 19 #Python
You might like
php指定函数参数默认值示例代码
2013/12/04 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
Python2包含中文报错的解决方法
2018/07/09 Python
Django 多环境配置详解
2019/05/14 Python
python实现淘宝购物系统
2019/10/25 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
先进个人获奖感言
2014/01/24 职场文书
活动总结报告格式
2014/05/09 职场文书
立志成才演讲稿
2014/09/04 职场文书
党校学习心得体会范文
2014/09/09 职场文书
租赁协议书
2015/01/27 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python