Skip to content

Repository files navigation

沃林学生管理系统

一个基于 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                  # 项目文档

🚀 快速开始

1. 环境要求

  • Python 3.8+
  • MySQL 5.7+

2. 克隆项目

git clone <repository-url>
cd llm_AI

3. 安装依赖

pip install -r requirements.txt

4. 配置数据库

复制 .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=True

5. 创建数据库

CREATE DATABASE woolin_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

6. 启动应用

python main.py

应用将在 http://127.0.0.1:8030 启动

📖 API 文档

启动应用后,访问以下地址查看 API 文档:

主要 API 端点

学生管理

  • 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 部署

使用 Docker Compose

# 构建并启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

单独构建 Docker 镜像

# 构建镜像
docker build -t woolin-student-system .

# 运行容器
docker run -d -p 8030:8030 woolin-student-system

👨‍💻 开发指南

代码规范

  • 遵循 PEP 8 Python 代码规范
  • 使用类型注解(Type Hints)
  • 函数和类需要添加 docstring 文档
  • 变量命名使用下划线命名法(snake_case)

提交代码

  1. 拉取最新代码
git pull origin main
  1. 创建功能分支
git checkout -b feature/your-feature-name
  1. 提交更改
git add .
git commit -m "Add your feature"
  1. 推送分支
git push origin feature/your-feature-name

📝 许可证

本项目仅供学习交流使用。


注意: 请勿将 .env 文件上传到版本控制系统。

About

简单项目

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages