在Django中如何使用MQTT的方法
这篇文章主要介绍了在Django中如何使用MQTT的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
安装MQTT
Python环境下安装MQTT也很简单,需要注意的就是不要输错命令在Python3环境下安装Python MQTT的命令是:
pip3installpaho-mqtt
使用Python MQTT
编写Python MQTT脚本代码如下:
#为了能在外部脚本中调用DjangoORM模型,必须配置脚本环境变量,将脚本注册到Django的环境变量中 importos,sys importdjango #第一个参数固定,第二个参数是工程名称.settings os.environ.setdefault('DJANGO_SETTING_MODULE','my_django.settings') django.setup() #引入mqtt包 importpaho.mqtt.clientasmqtt #使用独立线程运行 fromthreadingimportThread fromapp名importmodels importtime importjson #建立mqtt连接 defon_connect(client,userdata,flag,rc): print("Connectwiththeresultcode"+str(rc)) client.subscribe('test/#',qos=2) #接收、处理mqtt消息 defon_message(client,userdata,msg): out=str(msg.payload.decode('utf-8')) print(msg.topic) print(out) out=json.loads(out) #收到消息后执行任务 ifmsg.topic=='test/newdata': print(out) #mqtt客户端启动函数 defmqttfunction(): globalclient #使用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) #启动函数 defmqtt_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()
在Django项目中启动脚本
在Django2.1下,只需要在 wsgi.py 中引入要执行的脚本文件,然后执行启动函数即可。如:
from存放MQTT脚本的模块import脚本名 #假如脚本名是:mqtt_functions mqtt_functions.mqtt_run()
感谢你能够认真阅读完这篇文章,希望小编分享的“在Django中如何使用MQTT的方法”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!
推荐阅读
-
浅析Django接口版本控制
浅析Django接口版本控制一、前言在RESTful规范中,有关版本的问题,用restful规范做开放接口的时候,用户请...
-
Django+Celery实现定时任务的示例
Django+Celery实现定时任务的示例目录一、前言二、配置使用定义与触发任务扩展三、Django中使用定时任务二次开...
-
Python(django中如何使用restful框架)
Python,django中如何使用restful框架在使用django进行前后台分离开发时通常会搭配django-res...
-
Django实现drf搜索过滤和排序过滤
Django实现drf搜索过滤和排序过滤前言当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。搜...
-
Django中怎么将ValuesQuerySet转换成json
今天就跟大家聊聊有关Django中怎么将ValuesQuerySet转换成json,可能很多人都不太了解,为了让大家更加了解,小编...
-
Django分页器的使用方法
这篇文章主要介绍了Django分页器的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面...
-
Python Django搭建文件下载服务器的实现shili
这篇文章主要介绍PythonDjango搭建文件下载服务器的实现shili,文中介绍的非常详细,具有一定的参考价值,感兴趣的小...
-
Django开发RESTful API怎么实现增删改查
小编给大家分享一下Django开发RESTfulAPI怎么实现增删改查,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一...
-
Django如何显示可视化图表的实践
这篇文章主要介绍Django如何显示可视化图表的实践,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一实战1...
-
django中xadmin管理器常用显示的设置方式有哪些
这篇文章主要介绍了django中xadmin管理器常用显示的设置方式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读...