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实现360皮肤按钮控件示例
Feb 21 Python
python中的内置函数getattr()介绍及示例
Jul 20 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 Python
scrapy爬虫完整实例
Jan 25 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
Python  unittest单元测试框架的使用
Sep 08 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 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
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
浅析node.js中close事件
2014/11/26 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
python 批量解压压缩文件的实例代码
2019/06/27 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
总经理秘书工作职责
2013/12/26 职场文书
国培计划培训感言
2014/03/11 职场文书
法制宣传教育方案
2014/05/09 职场文书
经营理念口号
2014/06/21 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
2014年文员工作总结
2014/11/18 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python