当前位置:   article > 正文

Micropython-microhttp:一个超级简单的http web服务库,为ESP32和ESP8266之类的硬件提供http服务支持

microhttp

背景

很喜欢ESP系列的产品,结合micropython很轻松就可以开发出一个精简的物联网产品(当然Adruino开发也很不错),其提供的蓝牙、WIFI支持也可以让我们可以快速进行通信,唯一的缺憾就是web服务的开发有些简陋,对于习惯了springboot、fastapi和flask开发的我来说,micropython没有直接支持的类似库,写代码多少是有些疼痛的!

我在网上找了一圈,发现几个不错的:

这两个功能都很强大,一般web服务所需的支持应有尽有,使用方式也很丝滑,不过强大就意味的它们的依赖有点多,使用的时候需要花一些心思以及硬件的计算资源得稍微有些硬核!

本人使用的较多是ESP8266以及ESP32,硬件资源有限,也不需要那么多的web支持:

  • 只需要一些简单get、post、put和delete请求即可
  • 使用简单,无过多依赖

权衡之下,开发了一个简单http服务库,命名为microhttp,分享出来给相同需求的人使用,也希望能够得到进一步的优化和完善!

microhttp

安装

拷贝microhttp.py文件到硬件的根目录即可,使用micropython原生socket支持,无第三方依赖

使用

from microhttp import WebServer


app = WebServer()

@app.get('/')
def index(request,response):
    # 默认返回类型为 application/json
    # 特殊情况下可以更改
    response.content_type='text/html'
    return """
    <h2>你好</h2>
    """

@app.get('/testget')
def testget(request,response):
    # 获取get参数:dict类型
    print('test testget:',request.route_param)
    return {'state':1,'message':"get成功"}

@app.post('/testpost')
def testpost(request,response):
    # 获取post参数:dict类型
    print('test testpost:',request.body_param)
    return {'state':1,'message':"post成功"}


@app.put('/testput')
def testput(request,response):
    print('请求',request)
    print('test testput')
    return {'state':1,'message':"put成功"}


app.run(blocked=True,port=80)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

文档和开源地址

开源地址和使用说明

欢迎提提建议,谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/438803
推荐阅读
相关标签
  

闽ICP备14008679号