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中的日志模块logging
Jun 19 Python
老生常谈Python基础之字符编码
Jun 14 Python
python实现简单登陆流程的方法
Apr 22 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
使用Python对微信好友进行数据分析
Jun 27 Python
Python定时任务sched模块用法示例
Jul 16 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
Django REST framework 视图和路由详解
Jul 19 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 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代码
2016/08/08 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
python图形用户接口实例详解
2019/12/16 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
24岁生日感言
2014/01/13 职场文书
部队万能检讨书
2014/02/20 职场文书
竞选部长演讲稿
2014/04/26 职场文书
抗震救灾标语
2014/06/26 职场文书
上班迟到检讨书
2015/05/06 职场文书
请假条应该怎么写?
2019/06/24 职场文书
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python