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实现socket端口重定向示例
Feb 10 Python
在Python的Django框架中实现Hacker News的一些功能
Apr 17 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
Python列表(list)所有元素的同一操作解析
Aug 01 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
selenium3.0+python之环境搭建的方法步骤
Feb 01 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相关资料
2006/10/09 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
给老婆的搞笑检讨书
2014/01/12 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
综合实践教学反思
2014/01/31 职场文书
秘书英文求职信
2014/04/16 职场文书
导游欢迎词范文
2015/01/23 职场文书
初中同学会致辞
2015/08/01 职场文书