django使用MQTT的方法是什么?如何安装MQTT?
Admin 2021-06-01 群英技术资讯 803 次浏览
我们知道Django是由Python写成的,一个开放源代码的Web应用框架。本文主要给大家介绍django使用MQTT的方法,那么什么是MQTT?MQTT也叫做消息队列遥测传输协议,其最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。简单了解完MQTT,下面我们一起来看看在django中怎么使用MQTT。
Python环境下安装MQTT也很简单,需要注意的就是不要输错命令
在Python3环境下安装Python MQTT的命令是:
pip3 install paho-mqtt
编写Python MQTT脚本
代码如下:
# 为了能在外部脚本中调用Django ORM模型,必须配置脚本环境变量,将脚本注册到Django的环境变量中 import os, sys import django # 第一个参数固定,第二个参数是工程名称.settings os.environ.setdefault('DJANGO_SETTING_MODULE', 'my_django.settings') django.setup() # 引入mqtt包 import paho.mqtt.client as mqtt # 使用独立线程运行 from threading import Thread from app名 import models import time import json # 建立mqtt连接 def on_connect(client, userdata, flag, rc): print("Connect with the result code " + str(rc)) client.subscribe('test/#', qos=2) # 接收、处理mqtt消息 def on_message(client, userdata, msg): out = str(msg.payload.decode('utf-8')) print(msg.topic) print(out) out = json.loads(out) # 收到消息后执行任务 if msg.topic == 'test/newdata': print(out) # mqtt客户端启动函数 def mqttfunction(): global client # 使用loop_start 可以避免阻塞Django进程,使用loop_forever()可能会阻塞系统进程 # client.loop_start() # client.loop_forever() 有掉线重连功能 client.loop_forever(retry_first_connection=True) client = mqtt.Client(client_id="test", clean_session=False) # 启动函数 def mqtt_run(): client.on_connect = on_connect client.on_message = on_message # 绑定 MQTT 服务器地址 broker = '192.168.1.88' # MQTT服务器的端口号 client.connect(broker, 1883, 62) client.username_pw_set('user', 'user') client.reconnect_delay_set(min_delay=1, max_delay=2000) # 启动 mqttthread = Thread(target=mqttfunction) mqttthread.start() # 启动 MQTT # mqtt_run() if __name__ == "__main__": mqtt_run()
在Django2.1下,只需要在 wsgi.py 中引入要执行的脚本文件,然后执行启动函数即可。
如:
from 存放MQTT脚本的模块 import 脚本名 # 假如脚本名是:mqtt_functions mqtt_functions.mqtt_run()
关于django使用MQTT的方法就分享到这,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果还想要了解更多django使用MQTT技巧,大家可以关注其他相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了七个Python必备的GUI库,帮助大家更好的理解和学习使用python制作gui程序,感兴趣的朋友可以了解下
这篇文章主要介绍了在python2中unicode()函数在python3中报错的解决方案,希望给大家做个参考,下次出现这个问题的时候,也知道如何应对
Selenium 是一个 Web的自动化测试工具 ,最初是为网站 自动化测试而开发的 , Selenium 可以直接调用浏览器 ,它支持所有主流的浏览器,本文给大家介绍Python 如何安装Selenium,感兴趣的朋友一起看看吧
这篇文章给大家分享的是有关python内置数据结构的内容,下文介绍了array、defaultdict、Named Tuple和Counter这几种python内置数据结构的作用和用法,小编觉得挺实用的,因此分享给大家做个参考。感兴趣的朋友跟随小编一起来看看吧。
Python的基本语法详解,小编通过实际的案例向大家展示了操作过程,简单易懂,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧,希望对大家学习或工作能有帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008