一个基于 FastAPI + SQLAlchemy + MySQL 的学生信息管理系统,提供学生、教师、班级、成绩、就业等模块的完整 CRUD 功能。
- 学生管理:学生的增删改查,支持多条件搜索
- 教师管理:教师信息的管理与查询
- 班级管理:班级信息的维护与管理
- 成绩管理:学生考试成绩的录入与查询
- 就业管理:学生就业信息的管理与统计分析
- 统计分析:提供多维度数据统计功能
- 后端框架:FastAPI 0.115.0
- 数据库 ORM:SQLAlchemy 2.0.46
- 数据库:MySQL
- ASGI 服务器:Uvicorn 0.42.0
- 数据验证:Pydantic 2.12.5
- API 文档:Swagger UI (自动生成)
woolin-student-system/
├── app/ # 应用主目录
│ ├── __init__.py
│ ├── main.py # 应用入口
│ ├── database.py # 数据库配置与模型
│ ├── config.py # 配置管理
│ ├── api/ # API路由层
│ │ ├── __init__.py
│ │ ├── router_students.py # 学生路由
│ │ ├── router_teachers.py # 教师路由
│ │ ├── router_classes.py # 班级路由
│ │ ├── router_scores.py # 成绩路由
│ │ ├── router_employment.py # 就业路由
│ │ └── router_statistics.py # 统计路由
│ ├── schemas/ # Pydantic模型层(数据验证)
│ │ ├── __init__.py
│ │ ├── student.py
│ │ ├── teacher.py
│ │ ├── class.py
│ │ ├── score.py
│ │ └── employment.py
│ ├── services/ # 业务逻辑层
│ │ ├── __init__.py
│ │ ├── student_service.py
│ │ ├── teacher_service.py
│ │ ├── class_service.py
│ │ ├── score_service.py
│ │ └── employment_service.py
│ └── utils/ # 工具函数
│ ├── __init__.py
│ └── response.py
├── requirements.txt # 依赖包列表
├── .env # 环境变量配置
├── .env.example # 环境变量示例
├── docker-compose.yml # Docker编排文件
├── Dockerfile # Docker镜像构建文件
├── init.sql # 数据库数据库初始化脚本
├── start.sh # 启动脚本
└── README.md # 项目文档
- Python 3.8+
- MySQL 5.7+
git clone <repository-url>
cd llm_AIpip install -r requirements.txt复制 .env.example 为 .env 并修改配置:
cp .env.example .env编辑 .env 文件:
# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=woolin_db
# 应用配置
APP_HOST=127.0.0.1
APP_PORT=8030
DEBUG=TrueCREATE DATABASE woolin_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;python main.py应用将在 http://127.0.0.1:8030 启动
启动应用后,访问以下地址查看 API 文档:
- Swagger UI: http://127.0.0.1:8030/docs
- ReDoc: http://127.0.0.1:8030/redoc
GET /students/- 获取所有学生GET /students/{id}- 获取单个学生POST /students/- 添加学生PUT /students/{id}- 更新学生DELETE /students/{id}- 删除学生
GET /teachers/- 获取所有教师GET /teachers/{id}- 获取单个教师POST /teachers/- 添加教师PUT /teachers/{id}- 更新教师DELETE /teachers/{id}- 删除教师
GET /class/- 获取所有班级GET /class/{id}- 获取单个班级POST /class/- 添加班级PUT /class/{id}- 更新班级DELETE /class/{id}- 删除班级
GET /score/{stu_id}- 获取学生成绩POST /score/- 添加成绩PUT /score/{id}- 更新成绩DELETE /score/{id}- 删除成绩
GET /employment/- 获取所有就业信息GET /employment/students- 获取学生就业信息GET /employment/class- 获取班级就业信息GET /employment/search- 多条件搜索POST /employment/students/post- 添加就业信息PUT /employment/put- 更新就业信息DELETE /employment/students/delete- 删除就业信息
POST /statistics/students/age_over- 查询超过指定年龄的学员- 更多统计端点请参考 API 文档
| 变量名 | 说明 | 默认值 |
|---|---|---|
DB_HOST |
数据库主机 | localhost |
DB_PORT |
数据库端口 | 3306 |
DB_USER |
数据库用户名 | root |
DB_PASSWORD |
数据库密码 | 123456 |
DB_NAME |
数据库名称 | woolin_db |
APP_HOST |
应用主机 | 127.0.0.1 |
APP_PORT |
应用端口 | 8030 |
DEBUG |
调试模式 | True |
# 构建并启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down# 构建镜像
docker build -t woolin-student-system .
# 运行容器
docker run -d -p 8030:8030 woolin-student-system- 遵循 PEP 8 Python 代码规范
- 使用类型注解(Type Hints)
- 函数和类需要添加 docstring 文档
- 变量命名使用下划线命名法(snake_case)
- 拉取最新代码
git pull origin main- 创建功能分支
git checkout -b feature/your-feature-name- 提交更改
git add .
git commit -m "Add your feature"- 推送分支
git push origin feature/your-feature-name本项目仅供学习交流使用。
注意: 请勿将 .env 文件上传到版本控制系统。