移远QuecPython(基于EC600s)开发物联网应用(八)
2021-05-15 本文已影响0人
熊爸天下_56c7
本篇开始, 我们将接触到QuecPython第三方库.
目前的第三方库有如下一些:
为什么没有OneNet???🙃🙃🙃
我重点关注的有: request, umqtt ntptime system log
一. request - HTTP
request请求 HTTP客户端的相关功能函数
import request
1. get请求
request.get(url, data, headers,decode,sizeof,ssl_params)
举例:
import request
response = request.get('http://httpbin.org/get')
print(response.json())
2. POST请求
request.post(url, data, headers,decode,sizeof)
举例:
import request
import ujson
data = {"key1": "value1", "key2": "value2", "key3": "value3"}
response = request.post('http://httpbin.org/post',data=ujson.dumps(data))
print(response.json())
3. put请求
request.put(url, data, headers,decode,sizeof)
4. HEAD请求
request.head(url, data, headers,decode,sizeof)
5. 关于Response类
Response类有如下内容:
属性 | 描述 |
---|---|
response.content | 返回响应内容的生成器对象 |
response.text | 返回文本方式响应内容的生成器对象 |
方法 | 描述 |
---|---|
response.json() | 返回响应的json编码内容并转为dict类型 |
举例: get 百度首页
要注意: 我们获取的content 和 text 是生成器对象, 需要迭代读取
import request
response = request.get('http://www.baidu.com')
for i in response.text:
print(i)
二. log - 日志
import log
系统日志记录,分级别日志工具
1. 设置日志输出级别
log.basicConfig(level)
设置日志输出级别, 设置日志输出级别, 默认为log.INFO,系统只会输出 level 数值大于或等于该 level 的的日志结果。
设置日志输出的好处是:
- 我们开发时可以把级别设低, 生产时把日志设高,
- 输出日志可以输出到某个固定的LOG文件中
import log
log.basicConfig(level=log.INFO)
2. 获取logger对象
log.getLogger(name)
获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。
3. 输出debug级别的日志
log.debug(msg)
4. 输出info级别的日志
log.info(msg)
5. 输出warning级别的日志
log.warning(msg)
6. 输出error级别的日志
log.error(msg)
7. 输出critical级别的日志
log.critical(msg)
三. ntptime - NTP对时
import ntptime
该模块用于时间同步
1. 返回当前的ntp服务器
ntptime.host
返回当前的ntp服务器,默认为"ntp.aliyun.com"。
2. 设置ntp服务器
ntptime.sethost(host)
3. 同步ntp时间
ntptime.settime()
4. 举例: NTP对时
这个模块只有设置时间和采集时间的功能, 采集好的时间要使用utime或者RTC模块来读取
此外, 还要注意 : 读取的时间是标准时间, 不是东八区时间, 注意加8小时
import ntptime
import utime
ntptime.settime()
time_turple = utime.localtime()
time_stamp = utime.mktime(time_turple) + 3600*8
time_turple_at_e8 = utime.localtime(time_stamp)
print('当前时间:%d年%d月%d日%d时%d分%d秒,时间戳:%d'
%(time_turple_at_e8[0],time_turple_at_e8[1],time_turple_at_e8[2],
time_turple_at_e8[3],time_turple_at_e8[4],time_turple_at_e8[5],time_stamp))
四. system - 环境配置
用于配置系统环境的参数以及功能, 目前只有一个功能😂
1. 交互保护设置
system.replSetEnable(flag)
交互保护设置,设置开启交互保护后所有外部指令以及代码都无法执行,为不可逆操作,请确认后开启,默认不开启。
开启后, 交互模式就没了, 除非重刷固件