microPython搭建webServer--(一)使用microdot库实现基本页面显示

发布时间:2026/9/11 7:00:34

microPython搭建webServer--(一)使用microdot库实现基本页面显示 1. 准备工作硬件esp32s3软件MicroPython v1.24.1使用thonny编程。microdot库可以到github或者gitee下载只需要microdot.py就可以了。2. 热点将esp32作为热点手机连接该热点后访问默认页面importnetwork# 创建一个WLAN对象并将其设置为AP模式接入点模式apnetwork.WLAN(network.AP_IF)ap.active(True)# 配置接入点的参数包括SSID网络名称和密码ap.config(essidMyESP32AP,passwordpassword123)# 打印接入点的IP地址print(AP IP address:,ap.ifconfig())先运行一下这段代码顺利的话可以显示当前状态。AP IP address:(192.168.4.1,255.255.255.0,192.168.4.1,0.0.0.0)3. 第一个网页将microdot.py传到开发板根目录运行如下代码frommicrodotimportMicrodotimportnetwork# 创建一个WLAN对象并将其设置为AP模式接入点模式apnetwork.WLAN(network.AP_IF)ap.active(True)# 配置接入点的参数包括SSID网络名称和密码ap.config(essidMyESP32AP,passwordpassword123)# 打印接入点的IP地址print(AP IP address:,ap.ifconfig())appMicrodot()html!DOCTYPE html html head titleMicrodot GPIO Example/title meta charsetUTF-8 /head body h1Microdot Example/h1 /body /html app.route(/,methods[GET,POST])asyncdefhello(request):returnhtml,200,{Content-Type:text/html}app.run(host192.168.4.1,debugTrue)thonny中应该显示如下AP IP address:(192.168.4.1,255.255.255.0,192.168.4.1,0.0.0.0)Startingasyncserver on192.168.4.1:5000...此时用手机连接“MyESP32AP”热点用浏览器访问http://192.168.4.1:5000显示出网页。通过上面的代码可以看到使用microdot就是简单的四步1、定义一个对象app2、定义网页内容字符串变量html如果有简易的js代码也直接写在html中。3、定义装饰器响应浏览器访问web的请求示例中就是将html字符串发送给浏览器。4、运行app停止app使用app.shutdown()4. 发送文件运行以下代码允许浏览器访问webServer下面的所有文件importnetwork# 创建一个WLAN对象并将其设置为AP模式接入点模式apnetwork.WLAN(network.AP_IF)ap.active(True)# 配置接入点的参数包括SSID网络名称和密码ap.config(essidMyESP32AP,passwordpassword123)# 打印接入点的IP地址print(AP IP address:,ap.ifconfig())frommicrodotimportMicrodot,send_file appMicrodot()app.route(/)asyncdefindex(request):returnsend_file(index.html)app.route(/path:path)asyncdefstatic(request,path):returnsend_file(path)app.run(debugTrue)这段代码有两个装饰器一个是当路由到根目录时使用send_file送出index.html文件另一个是访问具体的path时使用send_file送出任意文件。当然从服务器的安全性考虑一个webServer允许访问所有文件显然是不对的可以增加一个安全策略比如只send指定目录、指定扩展名的文档。5. 访问webServer中的所有文件importos allFiles[]deflist_files(directory):#遍历出所有文件,存入allFiles数组中try:filesos.listdir(directory)forfileinfiles:pathdirectory/fileifos.stat(path)[0]0x4000:# 判断是否为目录print(Directory: ,path)list_files(path)# 递归遍历子目录else:#print(File: , path)allFiles.append(path)exceptOSErrorase:print(Error: ,e)# 从根目录开始遍历list_files(/)html!DOCTYPE html html head titleMicrodot GPIO Example/title meta charsetUTF-8 /head body foriinallFiles:htmla href{}{}/abr.format(i.replace(//,/),i)html /body /html 先遍历esp32中的所有文件然后动态添加到html变量中生成带超链接的网页发送给浏览器这样就可以下载esp32中的所有文件。比如做一个gps轨迹记录仪将每天的log数据存入文档中。通过前面的代码可以遍历出文档名字然后点击超链接下载回来。遍历全部文件的完整代码importnetwork# 创建一个WLAN对象并将其设置为AP模式接入点模式apnetwork.WLAN(network.AP_IF)ap.active(True)# 配置接入点的参数包括SSID网络名称和密码ap.config(essidMyESP32AP,passwordpassword123)# 打印接入点的IP地址print(AP IP address:,ap.ifconfig())importos allFiles[]deflist_files(directory):#遍历出所有文件,存入allFiles数组中try:filesos.listdir(directory)forfileinfiles:pathdirectory/fileifos.stat(path)[0]0x4000:# 判断是否为目录print(Directory: ,path)list_files(path)# 递归遍历子目录else:#print(File: , path)allFiles.append(path)exceptOSErrorase:print(Error: ,e)# 从根目录开始遍历list_files(/)html!DOCTYPE html html head titleMicrodot GPIO Example/title meta charsetUTF-8 /head body foriinallFiles:htmla href{}{}/abr.format(i.replace(//,/),i)html /body /html frommicrodotimportMicrodot,send_file appMicrodot()app.route(/)asyncdefindex(request):#return send_file(index.html)returnhtml,200,{Content-Type:text/html}app.route(/path:path)asyncdefstatic(request,path):print(path)returnsend_file(path)app.run(debugTrue)
延伸阅读

更多相关文章

2026/9/6 19:52:00

2026.7.23:安装Windows下的mingw工具

安装Windows下的mingw工具 1 首先访问mingw-w64的官网 mingw-64官网 2 然后点击上图的Downloads按钮 3 点击上图的MinGW-W64-builds链接 4 跳转

2026/9/11 6:05:18

Formality:比较点的验证状态和整体验证状态

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 比较点的验证状态 在使用verify命令进行验证后,参考设计和实现设计所有匹配的比较点(如果使用特定选项,也可以验证任意两个比较点…

2026/9/11 7:00:33

Goldie:用编码Agent自动生成App Store上架截图与预览视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 7:00:33

Pico MicroPython低功耗实战:lightsleep调度与串口调试全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 7:00:33

G-Helper:华硕笔记本的单文件轻量控制中心

G-Helper:华硕笔记本的单文件轻量控制中心 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook, R…

2026/9/11 7:00:33

DeepSeek Harness服务器部署实战:Docker容器化与GPU调优全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 6:55:32

Agent系统操作性边界:安全失效的四大根源与动态治理

1. 这不是“安全边界”讨论,而是一场对Agent系统本质的重新校准“The Operational Limits of Agent Security (Dec 2025)”——这个标题乍看像一份年度技术白皮书,但如果你在2024年深度参与过至少三个生产级Agent项目,就会立刻意识到&#xf…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码