# FlaskDemoProject **Repository Path**: caodan970118/flask-demo-project ## Basic Information - **Project Name**: FlaskDemoProject - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-16 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flask 教师管理系统 一个基于 Flask 的 RESTful API 教师管理系统,采用 MVC 架构设计。 ## 项目结构 ``` FlaskDemoProject/ ├── app.py # 应用入口文件 ├── config.py # 配置文件 ├── requirements.txt # 依赖包列表 ├── controllers/ # 控制器层 │ ├── __init__.py │ ├── teacher_controller.py │ └── student_controller.py ├── services/ # 业务逻辑层 │ ├── __init__.py │ ├── teacher_service.py │ └── student_service.py ├── models/ # 数据模型层 │ ├── __init__.py # SQLAlchemy 实例和模型导出 │ ├── teacher.py # 教师模型 │ └── student.py # 学生模型 ├── static/ # 静态文件 └── templates/ # 模板文件 ``` ## 功能特性 ### 教师管理模块 - ✅ 教师信息的增删改查 - ✅ 邮箱唯一性验证 - ✅ 教师信息搜索 ### 学生管理模块 - ✅ 学生信息的增删改查 - ✅ 学号唯一性验证 - ✅ 邮箱唯一性验证 - ✅ 学生信息搜索 - ✅ 按年级筛选学生 ### 通用功能 - ✅ 数据验证和错误处理 - ✅ 统一的响应格式 - ✅ 完善的异常处理 - ✅ 多环境配置支持 ## API 接口 ### 基础信息 - **基础URL**: `http://localhost:5000` - **响应格式**: JSON ### 接口列表 ### 教师管理接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/teacher/` | 获取所有教师 | | GET | `/teacher/` | 获取指定教师 | | POST | `/teacher/` | 创建教师 | | PUT | `/teacher/` | 更新教师 | | DELETE | `/teacher/` | 删除教师 | | GET | `/teacher/search?keyword=关键词` | 搜索教师 | ### 学生管理接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/student/` | 获取所有学生 | | GET | `/student/` | 获取指定学生 | | GET | `/student/by-student-id/` | 根据学号获取学生 | | POST | `/student/` | 创建学生 | | PUT | `/student/` | 更新学生 | | DELETE | `/student/` | 删除学生 | | GET | `/student/search?keyword=关键词` | 搜索学生 | | GET | `/student/grade/` | 根据年级获取学生 | ### 请求示例 #### 创建教师 ```bash curl -X POST http://localhost:5000/teacher/ \ -H "Content-Type: application/json" \ -d '{ "name": "张老师", "email": "zhang@example.com", "phone": "13800138000", "department": "计算机系" }' ``` #### 创建学生 ```bash curl -X POST http://localhost:5000/student/ \ -H "Content-Type: application/json" \ -d '{ "name": "李同学", "student_id": "2021001", "email": "li@example.com", "phone": "13800138001", "grade": "2021级", "class_name": "计算机1班", "major": "计算机科学与技术" }' ``` #### 获取所有教师 ```bash curl http://localhost:5000/teacher/ ``` #### 获取所有学生 ```bash curl http://localhost:5000/student/ ``` #### 搜索教师 ```bash curl "http://localhost:5000/teacher/search?keyword=张" ``` #### 搜索学生 ```bash curl "http://localhost:5000/student/search?keyword=李" ``` #### 根据年级获取学生 ```bash curl "http://localhost:5000/student/grade/2021级" ``` ## 响应格式 ### 成功响应 ```json { "code": 200, "msg": "SUCCESS", "data": { "teacherList": [...], "total": 10 } } ``` ### 错误响应 ```json { "code": 400, "msg": "错误信息", "data": null } ``` ## 数据库表结构 ### 教师表 (teacher) ```sql CREATE TABLE `teacher` ( `id` bigint(20) NOT NULL, `name` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` ### 学生表 (student) ```sql CREATE TABLE `student_copy1` ( `SID` varchar(10) NOT NULL, `Sname` varchar(10) DEFAULT NULL, PRIMARY KEY (`SID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` ## 安装和运行 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 数据库配置 确保 MySQL 数据库运行,并创建名为 `test1` 的数据库。 ### 3. 运行应用 ```bash python app.py ``` 应用将在 `http://localhost:5000` 启动。 ## 环境配置 项目支持多环境配置: - `development`: 开发环境(默认) - `production`: 生产环境 - `testing`: 测试环境 通过环境变量 `FLASK_ENV` 切换环境: ```bash export FLASK_ENV=production python app.py ``` ## 技术栈 - **框架**: Flask 2.3.3 - **ORM**: SQLAlchemy - **数据库**: MySQL - **Python**: 3.7+ ## 开发说明 项目采用 MVC 架构: - **Models**: 数据模型定义 - **Services**: 业务逻辑处理 - **Controllers**: 请求处理和响应 所有接口都有完整的错误处理和数据验证。