从0到1实战FastAPI+AI开发学生信息管理系统(FastAPI+MySQL+Vue3)
前言
FastAPI凭借轻量高性能、原生数据校验、自动接口文档、异步编程、依赖注入等优势,是目前Python后端接口首选开发框架。本文借助PyCharm+腾讯CodeBuddy AI插件,从零搭建学生信息管理全栈项目,后端FastAPI+SQLAlchemy+MySQL,前端Vue3+ElementPlus,全程AI辅助生成代码,新手可跟着落地实操。
一、开发环境准备
1. 开发工具
IDE选用PyCharm(VS Code也可通用),数据库采用MySQL 8.0+/9.x版本。
2. Python环境配置
新建Python项目,可选系统Python3.13或Conda虚拟环境、项目内置venv虚拟环境;
保证有解析器
在项目根目录新建
requirements.txt依赖清单,终端使用清华镜像一键安装依赖:文章结尾我会提供依赖环境配置文件requirements.txt的下载链接,当然也可以自己配.
# 清华源加速安装依赖pipinstall-rrequirements.txt-ihttps://pypi.tuna.tsinghua.edu.cn/simple不指定镜像源会默认使用国外源,下载速度缓慢。
pip install -r requirements.txt
核心依赖清单(requirements.txt)
fastapi==0.136.1 uvicorn anyio==4.13.0 sqlalchemy pydantic python-dotenv httpx......二、安装AI编程插件CodeBuddy
借助AI自动生成分层代码,大幅减少手写工作量:
PyCharm顶部【文件→设置→Plugins(插件)】,Marketplace搜索
Tencent Cloud CodeBuddy,可顺带安装Qoder CN;安装完成重启IDE,浏览器登录CodeBuddy账号,平台每月免费Token额度满足小型项目开发;
扫码登录后,切换插件Craft智能体模式,可选DeepSeek等大模型,实现需求拆解、代码批量生成。
三、项目分层架构设计
采用MVC高内聚低耦合分层架构,项目目录标准结构(后面我们直接用AI给我生成):
PythonProject8/ ├── .env # 数据库环境配置文件 ├── requirements.txt # 项目依赖 ├── main.py # 项目启动入口 ├── database.py # 数据库连接配置 ├── app/ ├── core/ # 全局配置、缓存、配置文件 ├── models/ # SQLAlchemy数据库实体模型 ├── schemas/ # Pydantic入参/出参数据校验模型 ├── crud/ # 数据库基础增删改查 ├── services/ # 业务逻辑层(核心业务校验) ├── routers/ # API接口路由层 ├── frontend/ # Vue3前端项目目录四、MySQL数据库部署与配置
1. MySQL安装
前往MySQL官网下载Windows MSI安装包(8.4LTS/9.1版本),安装过程务必记录root账号密码。
2. 创建业务数据库
- CMD命令行登录MySQL:
mysql-uroot-p- 执行SQL创建项目数据库:
CREATEDATABASEtest;
3. 项目根目录新建.env环境配置文件,写入数据库连接信息:
DB_USER=root DB_PASSWORD=你的数据库密码 DB_HOST=localhost DB_PORT=3306 DB_NAME=test3. PyCharm数据源连接
打开Database面板,新增MySQL数据源,填写账号密码、端口、库名test,测试连接成功即配置完成;连接失败需去电脑服务中启动MySQL服务。
3. 数据源连接失败原因分析
如果连接失败又确保自己的密码账号没错,就回到桌面右键此电脑,点击管理
进入服务找到MySQL查看MySQL是否启动,没有就启动一下再回来重新测试连接
连接成功后,先打开控制台,创建我们的数据库(我在.env里的DB_NAME是test),所以我就通过create database test
刷新一下就可以看到我们建的数据库了
五、AI分阶段生成后端代码(学生信息管理)
项目需求
学生字段:学生编号、班级、姓名、籍贯、毕业院校、专业、入学时间、毕业时间、学历、顾问编号、年龄、性别
业务约束:
- 新增:学号唯一,入学时间<毕业时间;
- 删除:逻辑删除(标记删除字段,不物理删除数据);
- 修改:学生编号禁止修改。
注意:在AI提供目录框架给我们后,进行局部需求,不要一次性全部生成,因为一次性生成太多因素不可控
项目MVC分层结构
1.配置流向:.env → core/config.py → database.py/cache.py
.env 存明文配置,config 统一读取解析,再给数据库、缓存初始化用,避免硬编码密码。
2.数据流向:models → crud → service → router → schemas
ORM 模型定义表 → crud 查表 → service 处理业务 → router 接收请求 → schemas 格式化出入参。
3.通用能力:dependencies.py 全路由共享
鉴权、分页等公共逻辑抽离为依赖,所有接口按需注入,减少重复代码
阶段1:生成数据库配置+数据模型
CodeBuddy Craft输入提示词:
按照标准分层结构,先编写database.py数据库连接文件和models下student.py实体模型文件
AI自动创建对应目录与代码,生成后右键文件运行测试无报错。
提示词如下:按照方案B标准分层,先将我的database和model文件配置好我看看
AI生成的目录结构如下
等待片刻后,就会出现,AI会帮你建好目录结构,并配置好database和model给我们,我们进入database.py,和model目录下的student.py,右键运行测试一下
阶段2:生成Schema数据校验层 + CRUD层
提示词:
编写schemas Pydantic请求响应校验模型、crud数据库操作层代码
- Schema:负责前端入参数据格式、字段类型校验;
- CRUD:封装单表基础增删改查SQL操作。
等待生成完成后,同样进入schema层和CRUD层文件运行一下看看
阶段3:生成Service业务层 + Router接口层
提示词:
编写Service业务逻辑层(实现业务校验+缓存)和Router路由接口层,遵循业务约束:新增学号唯一、入学小于毕业时间;逻辑删除;不可修改学号
- Service:处理业务规则,衔接Router和CRUD;
- Router:定义RESTful接口地址(新增/查询/修改/逻辑删除)。
上面配置好后,AI也已经帮你把main.py主文件,config.py配置文件,dependencis.py文件全配置好了,如果没有也可以让他帮忙配置一下,我这边全部给我配置好了
六、项目启动与接口调试
1. 启动后端服务
项目终端执行:
python main.py项目默认启动地址:http://127.0.0.1:8001
FastAPI自动生成交互式接口文档:http://127.0.0.1:8001/docs
注意:可能你们AI生成给你们的是端口号是8000
浏览器打开 http://127.0.0.1:8001,在结尾加上/docs就可以进入fastapi的API文档界面
2. 接口测试踩坑&解决
我们就可以测试一下功能了,下面以查询为例
500服务器异常:AI自动修改了
.env库名、config配置内数据库名,统一改回test,重启服务即可;
具体流程如下:
得到结果是报了个500的错误,我估计是AI把我的数据库改了,我们回到pycharm看看
回来发现,果然是AI改了我.env文件里的数据库名称,我把他改回test
配置文件里的config.py里的也改回来
我把数据库改回我的test,去终端能力按ctrl+c结束进程,并python main.py重新运行404未找到数据:数据库student空表无数据,手动在DB面板新增一条学生数据(student_id:1001);
上面500错误解决后,重新运行,回到浏览器刷新页面后,再随机输入一个学生编号查询看看
这次报404代表没找到该数据,
我们可以去自己插入一条数据
去我们的database那里刷新后进行就可以看到student表格了,进入表格,点+号,输入相应的数据
当然也可以批量导入数据,这里就不细讲了
输入完成后点击提交
3. 数据录入后再次在Docs页面调用查询接口,正常返回学生JSON数据,依次测试新增、编辑、删除全部接口。
七、AI一键生成Vue3前端页面
1. AI生成前端代码
Craft输入提示词:
基于现有学生管理后端接口,生成Vue3+ElementPlus前端项目,自动配置接口代理转发后端8001端口
AI自动在项目根目录生成frontend前端文件夹。
2. 前后端分别启动
新开两个终端分开运行:
# 终端1:启动后端python main.py# 终端2:进入前端目录启动Vue项目#因为前端放在frontend文件里一定要先进入该文件再运行cd./frontendnpmrun dev- 后端地址:
127.0.0.1:8001 - 前端访问:
localhost:3000(内置代理自动转发接口请求至后端) - 一定要确保你后端传给前端的端口号一致,比如我的端口号是8001,我AI把前端的接入我后端端口号是8001,让他改好
3. 前端功能
页面实现:学生多条件筛选(姓名/性别/班级/学历/顾问)、新增学生、编辑信息、逻辑删除学生,对接全部后端API。
八、项目总结
本项目依托FastAPI轻量化框架+AI代码助手,分层规范开发全栈学生管理系统:
- 后端分层:DB配置→Model实体→Schema校验→CRUD→Service业务→Router接口;
- AI辅助开发大幅减少重复编码,分步生成代码方便排查BUG;
- 全栈组成:FastAPI后端+MySQL数据库+Vue3前端,可在此基础拓展课程、成绩、用户权限等模块。
requirements.txt等项目文件参考链接:
链接: https://pan.baidu.com/s/1Ck5WlJ4wO6pgoqOFVxFpsA 提取码: 1234