很多同学学完基础组件,下一步就想做「大家一起用」的 App:留言板、排行榜、能看到别人上传的照片的商品墙。难点往往不在积木,而在数据和图片要存到一台大家都能访问的服务器上。
这个专题用最短的路径把这件事讲通:
- 服务端只有一个 Python 文件,不用装数据库,双击就能在自己电脑上运行,见《网络微数据库后台搭建教程》。
- App 只用原生组件:网络微数据库存数据,Web 客户端传图片,不需要拓展。
- 5 课循序渐进,每课都是一个能直接导入的完整 App,后一课只比前一课多一两个新概念。
学习路线
| 课 | 做出来的 App | 新学到的 | 用到的组件 |
|---|---|---|---|
| 第 1 课 | 连通测试 | 服务地址、异步请求与事件、连不上时怎么排查 | 网络微数据库 |
| 第 2 课 | 班级留言板 | 一个标签存一个列表、先读后写、定时刷新 | + 计时器、列表显示框 |
| 第 3 课 | 点击挑战排行榜 | 字典存数据、只在破纪录时写回、按分数排序 | + 字典积木 |
| 第 4 课 | 图片上传 | 图片文件存服务端、数据库里只存图片地址 | + Web 客户端、图片处理 |
| 第 5 课 | 带图商品墙 | 综合:发布、搜索、详情页切换、删除自己的数据 | + 对话框 |
建议按顺序学:每一课都会用到前一课的做法,页面里会标出「这一课新增」的部分。
开始前:把服务端跑起来
照着《网络微数据库后台搭建教程》的路线 A,在自己电脑上运行服务端,大约 20 分钟。跑通的标志是:手机浏览器打开服务端窗口里显示的地址,能看到「网络微数据库:共 0 条,图片 0 张」。
这一步做完,5 课都用同一个服务端、同一个服务地址。
每课的 App 顶部都有同一张「服务地址」卡片:把服务端窗口里显示的那一行地址填进去点「保存」,地址就记在手机上,下次打开自动使用。它的做法在第 1 课里讲。
课堂上可以老师在讲台电脑上运行一个服务端,全班手机连同一个 WiFi、填同一个地址,大家的留言、成绩、图片就都在一起了。
5 课一览
第 1 课 连通测试
保存一句话到服务器、再读回来,显示用时;连不上时告诉你该查什么。
新概念:服务地址、异步事件
分步教程 .aia
第 2 课 班级留言板
写昵称和留言,大家的留言按时间倒序显示,每 10 秒自动刷新。
新概念:列表存储、先读后写
分步教程 .aia
第 3 课 点击挑战排行榜
10 秒内看谁点得多,成绩上榜,显示前 10 名和自己的名次。
新概念:字典、只写有变化的数据、排序
分步教程 .aia
第 4 课 图片上传
从相册选图,压缩后上传,大家的图片在列表里直接显示。
新概念:文件上传、图片地址
分步教程 .aia
第 5 课 带图商品墙
发布带图片的闲置物品,搜索、看详情,卖家可以下架自己的商品。
综合前四课
分步教程 .aia界面图由最终 .aia 执行真实积木、连真实服务端生成(列表里的图片是从服务端取回的),是布局预览,不是真机截图。
学完以后:网络微数据库能走多远
5 课做完,你已经能做「多人共享数据 + 图片」的 App 了。也要清楚它的边界,免得做大了才发现走不通:
| 局限 | 表现 | 怎么办 |
|---|---|---|
| 只能按标签整体存取 | 不能「查价格低于 50 的商品」,只能全部取回来在手机上筛 | 数据多了改用带查询的数据库 |
| 没有原子追加 | 两个人同时读到旧列表,各自追加后写回,后写回的会覆盖先写的(第 2 课里专门演示) | 即使人少也可能发生;频繁并发写入时改用 CloudBase 等支持原子操作或事务的后端 |
| 不能设置自定义请求头 | 组件没有 RequestHeaders,不能直接按接口要求发送 Authorization 等鉴权头 | 需要这类接口时用 Web 客户端或 CloudBase;仅更换服务地址不会增加鉴权能力 |
| 没有真正的权限 | 第 5 课「只有卖家能下架」只是界面上不显示按钮,懂行的人照样能改数据 | 需要账号系统 |
| 口令写在 App 里 | 别人拆开 App 就能拿到服务地址 | 不存密码、身份证号等敏感信息 |
需要用户账号、按条件查询、真正的权限时,换成后端服务(BaaS):国内用 CloudBase,不想实名认证用 Supabase,账号登录的写法见注册登录教程。想继续用自己的服务器,可以看 Web 客户端连接 MySQL。
验证范围
每个 .aia 都用正式编辑器同源 Blockly 载入并保存重开(0 错误)、经平台真实后台导入、编译出 Android APK;每课的业务逻辑都连着真实运行的服务端执行最终积木检查,共 110 项。真机运行、AI 伴侣联调、手机与电脑之间真实的局域网访问还没有测,详见验证记录。
扫码添加客服咨询