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

背景

很喜欢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. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 07:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 07:14:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 07:14:02       82 阅读
  4. Python语言-面向对象

    2024-04-14 07:14:02       91 阅读

热门阅读

  1. Linux nfs挂载失败处理

    2024-04-14 07:14:02       55 阅读
  2. 【C语言】命令行

    2024-04-14 07:14:02       39 阅读
  3. janus搭建

    2024-04-14 07:14:02       43 阅读
  4. libtorch中API介绍

    2024-04-14 07:14:02       148 阅读
  5. FFmpeg: 自实现ijkplayer播放器--07解复用线程设计

    2024-04-14 07:14:02       39 阅读
  6. 解决在 Ubuntu18.04 上安装 ffmpeg 失败的方法

    2024-04-14 07:14:02       166 阅读
  7. FFmpeg: 自实现ijkplayer播放器--08视频解码线程设计

    2024-04-14 07:14:02       36 阅读