django使用channels实现通信的示例
1.安装依赖包
2.settings.py 修改加上支持
1 2 3 4 5 6 7 8 9 10 | 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项目。其中在你自己的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
1 2 3 4 5 6 7 8 9 | 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 最底部加上这条。
1 2 3 4 5 6 7 8 9 10 | CHANNEL_LAYERS = { 'default' : { 'BACKEND' : 'channels_redis.core.RedisChannelLayer' , 'CONFIG' : { "hosts" : [( '192.168.1.20' , 6379 )], }, }, } ASGI_APPLICATION = "MyWeb.routing.application" |
接着简单的写一下,routing.py 里面
1 2 3 4 5 | from channels.routing import ProtocolTypeRouter application = ProtocolTypeRouter({ # Empty for now (http->django views is added by default) }) |
进入django shell 测试是否能连接到数据库
1 2 3 4 5 6 7 8 9 10 11 | (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实现通信的资料请关注脚本之家其它相关文章!
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
这篇文章主要介绍了Python cookbook(数据结构与算法)通过公共键对字典列表排序算法,结合实例形式分析了Python基于operator模块中的itemgetter()函数对字典进行排序的相关操作技巧,需要的朋友可以参考下2018-03-03python按照行来读取txt文件全部内容(去除空行处理掉\t,\n后以列表方式返回)
这篇文章主要介绍了python按照行来读取txt文件全部内容 ,去除空行,处理掉\t,\n后,以列表方式返回,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下2023-06-06python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
今天小编就为大家分享一篇python检测文件夹变化,并拷贝有更新的文件到对应目录的方法。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-10-10
最新评论