• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在Django中使用MQTT的方法

    安装MQTT

    Python环境下安装MQTT也很简单,需要注意的就是不要输错命令
    在Python3环境下安装Python MQTT的命令是:

    pip3 install paho-mqtt
    

    使用Python 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()

    在Django项目中启动脚本

    在Django2.1下,只需要在 wsgi.py 中引入要执行的脚本文件,然后执行启动函数即可。
    如:

    from 存放MQTT脚本的模块 import 脚本名
    # 假如脚本名是:mqtt_functions
    mqtt_functions.mqtt_run()
    

    到此这篇关于在Django中使用MQTT的方法的文章就介绍到这了,更多相关Django使用MQTT内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • springboot集成mqtt的实践开发
    • 使用python实现mqtt的发布和订阅
    • Docker MQTT安装使用教程
    • vue使用stompjs实现mqtt消息推送通知
    • python使用MQTT给硬件传输图片的实现方法
    • python mqtt 客户端的实现代码实例
    • 在 Python 中使用 MQTT的方法
    上一篇:十个Python自动化常用操作,即拿即用
    下一篇:Django上传xlsx文件直接转化为DataFrame或直接保存的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    在Django中使用MQTT的方法 在,Django,中,使用,MQTT,的,