「AI开发小程序教程」六、为小程序搭配服务器数据接口
在第四篇中,我讲了怎么用AI开发一个微信小程序,但这个小程序的数据是存储在用户手机中,所以用户更换设备后,数据就丢失了。解决这个问题的办法是,把数据存储到服务器。
在第五篇中,为了防止你不了解什么是服务器,我讲解了服务器是什么、以及三件关键的事。其中一个是:在服务器上运行一个程序,这个程序看着有没有用户请求过来。这个程序开发,后端开发程序员一般称为接口开发。
顺便提一下,在AI编程之前,互联网公司的程序员会分为前端(写展现给用户的页面、数据从后端接口获得并把数据展示在页面上)、后端(写接口给前端提供数据、保存用户数据)等。第四篇中,重点介绍的是前端开发部分。而这篇,重点介绍的是后端开发部分,而现在的AI,是全栈程序员(啥都会)。
后端编程语言有哪些
与前端不同,后端编程语言有很多,每种语言都有自己的优缺点,没有高低贵贱之分。没有绝对的“最好”,只有“更合适”。这里我就不介绍和对比所有后端编程语言了,只推荐适合普通人、适合接口开发的几种编程语言,基本特点:简单易懂、部署简单、拿来即用的第三方库丰富。
- Python:使用Flask 或 FastAPI开发接口。Python在AI、数据分析方面有优势。(目前最适合小学生学习的代码语言:山东省的小学六年级信息技术教材中,已经加入了 Python 的相关内容。)
- Go (Golang):使用Gin框架开发接口。最大的特点是可以把程序打包为一个文件,在服务器上部署运行非常方便。还有一个优势是适合高并发用户访问。
- Java:使用SpringBoot开发接口。特点是spring框架非常成熟稳定,第三方库非常多。SpringBoot也是打包为一个jar文件,只需要用java命令运行即可。
用户数据存到哪里?
你应该知道,在电脑或手机上,你需要把文字存储到txt文本文件、或者是word;需要把非文字内容(如图片、音乐)存储到专门格式的文件中,总之,都是存在于文件中。
你大概也知道,当忘记文件是哪一个时,搜索文件一般很慢,并且还不一定能找到。所以你或许拿一个电子表格(excel表格)记录一下 「什么内容」 存到 「哪个文件」里去了,下次忘记的时候,可以来看一下这个记录,从而快速找到那个文件。或者直接拿excel表格来按照一定的格式来存储数据。
所以对于我们要开发的后端程序,需要把用户的数据按照这种方式存储起来吗?
- 对于非文本类型的数据,如图片,我们依然要用固定格式的文件来存储
- 但对于文本类型的数据,我们通常不会使用txt或excel来存储,而是使用一个更合适的东西:【数据库】
数据库,就是字面意思:存储数据的仓库。你可以简单想象成一个文件夹,这个文件夹下存储了很多数据文件。
数据库有很多中类型,但最经典的类型,是有点像excel表格的,你可以想象为,数据库文件夹下,存储了很多excel表格文件,比如用户表,记录了用户名、密码、昵称等数据。比如商品表,记录了商品名、价格、库存数量等数据。每一行都是一个完整的记录。
这种类型的数据库(关系型数据库)软件也有非常非常多,有国外的,也有国产信创的,比较知名的有:
- SQLite:极其轻量级的嵌入式数据库。它不需要安装任何服务器进程,整个数据库就是一个普通的文件。非常适合本地开发、测试以及移动端应用,在 Python 中甚至自带无需额外安装。
- MySQL:全球最流行的开源数据库。免费、社区活跃、文档丰富,是绝大多数 Web 项目(如搭配 Python/PHP/Java)的首选。
- PostgreSQL:功能极其强大的开源数据库。支持复杂的数据类型和高级查询,稳定性和扩展性极佳,适合对数据严谨性要求高的企业级应用。
- Microsoft SQL Server:微软推出的商业数据库。与 Windows 环境和 .NET 技术栈集成度极高,适合使用 C#开发的企业。(小程序场景下不建议使用)
- Oracle:甲骨文公司推出的大型商业数据库。性能强悍、安全性极高,但非常昂贵且复杂,通常用于银行、金融等超大型企业的核心系统。(小程序场景下不建议使用)
如果你从来没有用过数据库,那么我建议从不需要安装软件的SQLite开始,或者是安装较为容易的MySQL开始。而考虑到最终需要服务用户,我建议你使用Mysql,但你不必纠结,现在的后端程序开发中,通常可以随意切换数据库,而不需要修改代码,所以你甚至可以在自己的电脑(本地环境)用SQLite测试,服务器(线上环境)使用Mysql。
后端程序的核心功能
一个后端程序,最核心的功能是4个字:
- 增:增加新的记录到数据库的某一个表中,就像往excel中新增一行那样
- 删:删除数据库的某一个表中的记录,就像删除了excel表中的一行那样
- 改:修改数据库中的某一个表中的记录,就像修改excel表中的某一个单元格那样
- 查:查询数据库中某一个表中的记录,可以像在excel表中Ctrl + F 进行搜索那样
让AI帮你实现后端
好了,现在你已经了解用什么编程语言可以编写一个后端程序,也知道把用户数据存储到某一个数据库中了,现在是时候让AI出场了。
我们以第四篇中的待办事项小程序来继续开发,我们的目标是,用后端程序和数据库来存储待办事项。
本篇内容,我会以Java为例来讲解,原因是:
-
在电脑上安装Java没有那么难。你甚至不需要安装,Java程序员常用的传统编程软件(IDE)IntelliJ IDEA 自带了Java环境。但是你也可以自行搜索学习一下怎么安装Java环境,或者使用清华大学镜像站上的安装包来安装Java:https://mirrors.tuna.tsinghua.edu.cn/Adoptium/21/jdk/x64/windows/OpenJDK21U-jdk_x64_windows_hotspot_21.0.11_10.msi
-
本人最熟悉Java,担心其他语言讲得不专业。
-
最终的程序是一个.jar格式的文件,在服务器上启动很方便。
强烈建议你先下载IntelliJ IDEA这个软件(https://www.jetbrains.com/zh-cn/idea/),使用这个软件,你将轻松运行后端程序,以及轻松打包程序,并且无需安装Java环境。
重新组织目录
首先我建议你重新组织一下目录结构:

当然,如果这个文件夹的位置变化了,你需要在微信开发者工具中,重新打开一下小程序的目录。因为目录可能变了,开发者工具找不到了。如果路径没变,则不需要操作。

让AI写代码
然后你用Trae CN重新打开project目录(如果不会操作,请看第四篇),以便AI在一个文件夹下编写代码,在小程序下写代码时,他能看到后端程序的代码是什么样的,在后端写代码时,他能看到小程序的前端代码是什么样的。也就是在一个Trae窗口,而不是分为两个Trae窗口。
首先先创建一个AGENTS.md,交代一下背景,写在这个文件中的内容会在聊天时自动带上,省得我们一遍遍提醒AI。
在这个文件里添加以下内容(交代背景,越详细越好,可自由发挥)
这是一个带有后端程序的微信小程序项目,其中java目录为后端代码,miniprogram-test为微信小程序代码
小程序的功能是待办事项TodoList管理,使用的是微信小程序原生的开发方式
后端程序使用Java语言 + SpringBoot开发
数据库使用Mysql,Mysql连接地址为本机,用户名为XXX,密码为XXX,数据库名使用todolist(Mysql连接信息以你自己安装的Mysql的为准)
不用为我启动Java项目,我会使用IDEA软件来启动。

现在你只需要继续跟Trae聊天即可,如果你不想使用Java,而是要用Python或者Go,你可以模仿这个来进行改造。
把原来的本地存储待办事项数据改为使用Mysql数据库来存储,实现后端SpringBoot程序

只需稍等片刻,AI会完成工作

右侧是AI新增的后端程序代码,我们只需要点击全部保留,并且看看AI做了什么。
他告诉我们要创建好数据库,并怎样启动程序。
创建好数据库
对于数据库,你可以尝试搜索和学习一下基本用法,这里我们不展开说明了。如果你已经提前创建了数据库,你就可以直接去启动程序了,如果没有创建,你可以自行创建或者你也可以直接让AI帮你完成创建。


使用IDEA打开后端程序
打开IDEA这个软件,然后打开后端代码所在的java目录。

或者是使用菜单来打开。

选择信任

进入后,找到程序的主文件并启动


在浏览器访问一下 http://127.0.0.1:8080 或者 http://localhost:8080 ,看一下有没有正常工作(顺便说一下127.0.0.1、localhost指的是你的电脑自己,这两个地址只能在你电脑上访问,在别人的电脑上是访问不了的,千万不要直接发给别人了,发给别人他也是访问他自己的电脑的8080)
不管上面是啥,至少在工作了(这里其实是正常的)
如果8080启动不了,有可能是8080端口被占用了,可以换个

在小程序中测试一下
赶紧去小程序测试一下,看看是不是改了

点击添加时没有效果,看到调试器中报错了,这是因为当小程序请求一个接口网址时,这个地址的域名部分(忘记域名的,请看第五篇)没有添加在小程序后台。

可以看到官方在推广微信云开发和微信云托管,可以省去购买服务器、购买域名、配置域名、部署后台程序等工作,但是成本会偏高,这里我还是推荐你自己去买服务器和域名,各厂商一般都会有促销活动,综合成本较低。
当然,微信云开发、微信云托管我都用过,在后面的文章中,我也可能会再讲一下这些。

可以看到,网络请求用的request合法域名处,可以设置最多300个https://的域名 ,(比如 https://www.baidu.com ,只是举例而已,以最终你的域名为准)
但是目前,我们只有一个http://localhost:8080 ,不符合https,怎么办呢?其实在开发阶段,可以通过设置来解决,暂时可以先不管后台的配置。
打开微信开发者工具的设置,把本地设置中的不检验合法域名那一项打开就行了。

然后重新测试,成功了

去数据库里验证一下,可以看到数据确实已经存储到数据库中(我这个软件时DataGrip,同类软件还有DBeaver等)

好了,AI又一次聊天就解决了问题。如果没有实现你的目标,你需要再跟AI聊一聊。(这个过程在第三篇中讲过)
将程序打包出来
现在我们把程序打包出来,以便后续在服务器进行部署。
打开IDEA软件

打包完成后,jar包会出现在项目的target文件夹中。

这个程序包怎么启动?可以通过命令行执行 java -jar xxxx.jar,即可启动。但先不用管,后面我们会来讲怎么部署到服务器。
本文省略的部分
由于篇幅问题,本文省略了以下内容,但是我相信聪明的你一定能通过搜索或AI来解决这些内容
Java安装与环境变量配置
mysql的安装、设置root密码、新建数据库
数据库管理软件安装:比如DBeaver(https://dbeaver.io/download/)以及如何在数据库管理软件中查看和管理数据库。
思考一个问题
到这里,本篇关于怎么用AI开发后端接口程序,大概的流程就讲完了,剩下的请根据你的具体业务与AI畅聊。
但这里有个问题,数据库中的数据,好像都是我们自己的,其他人如果进入小程序,也能看到我们自己的数据,他们如果新增的话,也可以添加到数据库。相当于大家都在共同管理待办事项,这是不对的,每个人应该管理自己的待办事项的,并且不能看其他人的数据。
要完成这个事情,需要有用户体系,要有用户登录。我们在后续文章中再解决这个问题。
