MQTT Iot 学习笔记

pip 是一个安装和管理 Python包的工具

mosquitto是实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式。

MySQL是一个系型数据库管理系统在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言.

DBUtils是java编程中的数据库操作实用工具

Flask是一个使用 Python 编写的轻量级 Web 应用框架

CoAP(Constrained Application Protocol)协议,基于REST架构,主要针对受限应用协议(无线物联网很多是资源受限的,仅有有限的内存空间和有限的计算能力)

REST即表述性状态传递(英文:Representational State Transfer,简称REST)它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

请注意:下述的所有的操作都是在WINDOWS下操作的!

a.安装python, 在环境变量里面配置好安装路径.

b. 安装virtualenv, virtualenv可以建立多个独立的虚拟环境,各个环境中拥有自己的python解释器和各自的package包,互不影响, 解决依赖、版本以及间接权限问题。下载地址:https://pypi.python.org/pypi/virtualenv, 打开文件夹到virtualenv-15.1.0, 然后shift+右键,选择“在此处打开命令窗口”,打开。运行python setup.py install这个命令

c. 安装Werkzeug,Werkzeug是Flask使用的底层WSGI库。下载地址: https://pypi.python.org/pypi/Werkzeug

d.安装Jinja2,Jinja2是纯python编写的模板引擎,它和Django类似提供non-XML语法,除此之外还支持内联表达式和一个可选的沙箱环境。Jinja2遵守BSD开源协议,下载地址:https://pypi.python.org/pypi/Jinja2

e.安装MarkupSafe, 下载地址 https://pypi.python.org/pypi/MarkupSafe

f.安装click, 下载地址:https://pypi.python.org/pypi/click

g.安装itsdangerous, 下载地址:https://pypi.python.org/pypi/itsdangerous


1. __name__ 是当前模块名, 当模块被直接运行时模块名为 __main__

也就是说只有当包含if __name__ == '__main__': 语句的.py文件被运行时,__name__ == '__main__'才成立。

2.需要用https://pypi.python.org/pypi/paho-mqtt/1.3.1,下载包paho-mqtt-1.3.1。

如何装源码包呢?

运行python setup.py install,这个命令,就能把这个第三库安装到系统里,也就是 Python的安装路径,我用的windows是在 C:\Program Files\Python36\Lib\site-packages\paho_mqtt-1.3.1-py3.6.egg,easy-install.pth

3.DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。下载地址:https://pypi.python.org/pypi/DBUtils/

同2的方法,下载后运行 python setup.py install, 从命令窗口就可以看到生成到C:\Program Files\Python36\Lib\site-packages\DBUtils

DBUtils.PooledDB.connection()从连接池里面取出连接。DBUtils.PooledDB.connection._cursor()操作游标。

5.Flask, 下载地址https://github.com/pallets/flask,同方法2,安装flask, 同样生成到C:\Program Files\Python36\Lib\site-packages\flask.....

安装完flask,运行包含from flask import Flask的文件

查看有没有安装paho-mqtt, DBUtils, pip, flask....

同2的命令窗口,运行 python -m pip list命令即可

click (6.7)
DBUtils (1.2)
flask (0.13.dev0)
itsdangerous (0.24)
jinja2 (2.10)
markupsafe (1.0)
mysqlclient (1.3.12)
paho-mqtt (1.3.1)
pip (9.0.1)
pipreqs (0.4.8)
setuptools (28.8.0)
virtualenv (15.1.0)
werkzeug (0.14.1)

请注意:在linux下,用 pip list即可。

6. python的类方法和普通方法不同,类方法参 self 必不可少,还必须位于其他形参的前面。

为何必须在方法定义中包含形参 self 呢?

因为Python调用这个 __init__() 方法来创建类实例时,将自动传入实参 self。每个与类相关联的方法调用都自动传递实参 self ,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。 self 会自动传递,因此我们不需要传递它,需要传递的是self后面的参数!!!

比如:

Class AAA():

 def __init()__:

 .............

 def bbb(self, one, two):

 ............

调用的时候,AAA的实例,直接调用bbb(one,two)

7. 默认情况下,Flask路由仅支持HTTP的GET请求。

可以使用methods关键字参数,在注册路由时显式地声明视图方法支持的HTTP方法。关键字参数methods的类型为list,因此可以同时指定多种HTTP方法。使URL规则/query同时支持POST方法和GET方法, 

@app.route('/query',methods=['GET','POST'])

def v_query():

......

app.run(host='172.16.1.132', port=5000, debug=True)

上面代码的意思:当我们在浏览器里面输入host+port+/query这个url的时候,就是触发视图函数v_query


猜你喜欢

转载自blog.csdn.net/yhy08090/article/details/79257482