# StudentsPlatform **Repository Path**: soraandhuru/StudentsPlatform ## Basic Information - **Project Name**: StudentsPlatform - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-15 - **Last Updated**: 2025-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生管理系统 (Students Platform) 一个基于 Flask + uni-app 的全栈学生管理系统,支持双存储模式(JSON 和 SQLite)+ AI智能对话功能。 ## 学习记录 最近这段时间我完善了一下项目,设计示例测试并**添加了peewee orm增删改查到项目**,配置和安装dify等工具并学习使用,我在原来的基础上**设计了一个简单的dify agent**`(有自定义agent工具:简单加法,采用openapi,在test2目录下,和自带的获取时间工具)`,并通过api接口分别在python和前端调用测试,**最后将ai agent集成到uniapp中**。 **uniapp-chat-sse-stream<--api--dify-agent<--api--ollama-qwen3:8b** ### 🖼️ 学习过程展示 #### 1. Peewee ORM 数据库操作学习 ![Peewee ORM 示例](./step_image/peewee.png) *学习和实践 Peewee ORM 的增删改查操作,建立完整的数据库操作基础* #### 2. 项目首页设计 ![项目首页](./step_image/homepage.png) *uni-app 前端首页界面,展示项目的整体布局和导航结构* #### 3. Dify Agent 配置 ![Dify 配置界面](./step_image/difysetting.png) *配置 Dify AI Agent,包括自定义工具(简单加法)和系统工具(获取时间)的设置* #### 4. Dify 数据流程 ![Dify 数据处理](./step_image/difydata.png) *展示 Dify Agent 的数据处理流程和工具调用过程* #### 5. AI 对话页面实现 ![AI 对话界面](./step_image/chatpage.png) *最终实现的 AI 对话界面,支持流式对话和实时响应显示* 接下来的内容由AI分析整个项目生成,我稍微改了一些。 ## 项目架构 ``` studentsplatform/ ├── backend/ # Flask 后端服务 ├── frontend/ # uni-app 前端应用 ├── test/ # Peewee ORM 数据库操作示例 └── test2/ # Dify API 工具测试 ``` ## 功能特性 - ✅ 学生信息增删改查(CRUD) - ✅ 双存储支持(JSON 文件 + SQLite 数据库) - ✅ 跨平台前端(uni-app 支持 H5、小程序、APP) - ✅ RESTful API 设计 - ✅ 响应式 UI 界面 - 🤖 **AI智能对话**(集成 Dify API) - 📡 **流式数据传输**(Server-Sent Events) - 🔧 **自定义工具支持**(OpenAPI 规范) ## 技术栈 ### 后端 (Backend) - **框架**: Flask 2.2.5 - **数据库**: SQLite + JSON 文件存储, 默认SQLite - **ORM**: Peewee 3.18.1 - **跨域**: Flask-CORS 6.0.0 ### 前端 (Frontend) - **框架**: uni-app (Vue 3 Composition API) - **UI**: 原生组件 + 自定义样式 - **HTTP**: 封装的 request 工具 - **AI集成**: Dify API 流式对话 - **实时通信**: Server-Sent Events (SSE) ### 工具和测试 (Tools & Testing) - **数据库示例**: Peewee ORM CRUD 操作演示 - **API工具**: OpenAPI 3.0 规范,支持 Dify 自定义工具 - **流式传输**: connecttidify 简单实现 ## 快速开始 ### 1. 后端服务启动 ```bash # 进入后端目录 cd backend # 安装依赖 pip install -r requirements.txt # 启动服务 python server.py ``` 服务将在 `http://localhost:8000` 启动(或根据配置的端口) ### 2. 前端开发 ```bash # 进入前端目录 cd "frontend/Students Platform" # 使用 HBuilderX 打开项目 # 或者使用 uni-app CLI 运行 # H5 开发 npm run dev:h5 # 微信小程序 npm run dev:mp-weixin ``` ### 3. 测试和工具 ```bash # 测试 Peewee ORM 操作 cd test python 1.py # 测试 Dify API 工具 cd test2 python api_server.py ``` ## API 接口 ### 基础路径 ``` http://localhost:8000 # 主服务器 http://localhost:5000 # Dify API 工具测试 ``` ### 学生管理接口 | 方法 | 路径 | 描述 | 参数 | |------|------|------|------| | GET | `/students` | 获取所有学生 | - | | POST | `/students` | 添加学生 | `{id, name, age, grade}` | | PUT | `/students/{id}` | 更新学生信息 | `{name?, age?, grade?}` | | DELETE | `/students/{id}` | 删除学生 | - | ### Dify API 工具接口 | 方法 | 路径 | 描述 | 参数 | |------|------|------|------| | POST | `/add` | 两数相加 | `{a: number, b: number}` | ### AI 对话接口 - **服务**: 集成 Dify 平台 AI 服务 - **协议**: Server-Sent Events (SSE) 流式传输 - **功能**: 支持多轮对话,上下文连续 ### 请求示例 **添加学生** ```json POST /students { "id": 1001, "name": "张三", "age": 18, "grade": "高三1班" } ``` **更新学生** ```json PUT /students/1001 { "name": "张三丰", "age": 19 } ``` **Dify API 工具调用** ```json POST /add { "a": 5, "b": 3 } # 响应: {"result": 8} ``` ## 数据存储 项目支持两种存储方式: 1. **SQLite 数据库** (默认) - 文件位置: `backend/data/students.db` - 使用 Peewee ORM 管理 2. **JSON 文件存储** - 文件位置: `backend/data/students.json` - 纯文本存储,便于调试 ## 项目结构详解 ### 后端目录结构 ``` backend/ ├── server.py # Flask 主服务器 ├── storage_interface.py # 存储接口定义 ├── json_storage.py # JSON 存储实现 ├── sqlite_storage.py # SQLite 存储实现 ├── requirements.txt # Python 依赖 ├── test_simple.py # 简单测试 └── data/ # 数据文件目录 ├── students.db # SQLite 数据库 └── students.json # JSON 数据文件 ``` ### 前端目录结构 ``` frontend/Students Platform/ ├── App.vue # 应用主入口 ├── main.js # 应用启动文件 ├── manifest.json # 应用配置 ├── pages.json # 页面路由配置 ├── api/ │ └── student.js # 学生API调用 ├── pages/ │ ├── index/ # 首页 │ ├── students/ # 学生管理页面 │ └── chat/ # AI对话页面 ├── utils/ │ └── request.js # HTTP 请求封装 └── static/ # 静态资源 ``` ### 测试和工具目录 ``` test/ # Peewee ORM 示例 ├── 1.py # CRUD 操作演示 ├── example.db # 示例数据库 └── README.md # 使用说明 test2/ # Dify API 工具 ├── api_server.py # Flask API 服务器 ├── openapi_schema.yaml # OpenAPI 规范文件 ├── 1.py # 测试脚本 ├── requirements.txt # Python 依赖 └── README.md # 使用说明 ``` ## 开发说明 ### 后端开发 - 采用接口模式设计,支持多种存储实现 - 默认使用 SQLite 存储,可在 `server.py` 中切换为 JSON 存储 - 所有 API 支持 CORS 跨域请求 - 端口配置灵活,避免权限冲突 ### 前端开发 - 基于 uni-app 框架,支持多端发布 - 使用 Vue 3 Composition API - 响应式设计,适配移动端和桌面端 - 集成 AI 对话功能,支持流式数据显示 ### AI 功能开发 - 集成 Dify 平台 AI 服务 - 支持 Server-Sent Events 流式数据传输 - 可配置 API 密钥和服务地址 - 支持多轮对话和上下文连续性 ### 工具开发 - Peewee ORM 数据库操作示例 - OpenAPI 3.0 规范文件,支持 Dify 自定义工具导入 - 完整的 CRUD 操作演示 ## 配置说明 ### 后端配置 - **端口**: 默认 8000,可在 `server.py` 修改(避免使用动态端口范围50000+) - **存储方式**: 在 `StudentManager` 类中切换 `self.storage` - **数据目录**: `backend/data/` ### 前端配置 - **API 地址**: 在 `api/student.js` 中的 `BASE_URL` 修改为实际后端地址 - **AI 服务**: 在 `pages/chat/chat.vue` 中配置 Dify API 地址和密钥 - **请求超时**: 在 `utils/request.js` 中配置 ### AI 对话配置 ```javascript // 在 pages/chat/chat.vue 中配置 const baseApiUrl = ref('http://localhost') // Dify API 地址 const apiKey = ref('app-wcpS7Lnfdkp1UNQEscTt8oV1') // Dify API 密钥 ``` ### Dify 工具配置 - **OpenAPI 文件**: `test2/openapi_schema.yaml` - **API 服务器**: `test2/api_server.py`(端口 5000) - **测试脚本**: `test2/1.py` ## 🎯 完整学习路径 本项目展示了从基础到进阶的完整学习路径: ### 阶段一:基础架构搭建 1. **后端开发** - Flask + 双存储模式设计 2. **前端开发** - uni-app 跨平台应用开发 3. **数据库学习** - Peewee ORM 增删改查操作 ### 阶段二:AI 技术集成 1. **Dify 平台学习** - AI Agent 配置和自定义工具开发 2. **OpenAPI 规范** - 设计符合标准的 API 接口 3. **流式通信** - Server-Sent Events 实时数据传输 ### 阶段三:系统集成优化 1. **前后端联调** - API 接口对接和数据交互 2. **AI 功能集成** - 将 Dify Agent 集成到 uni-app 中 3. **用户体验优化** - 流式对话界面和交互体验 ### 技术栈演进 ``` 基础版本: Flask + uni-app + SQLite ↓ 进阶版本: + Peewee ORM + 双存储 ↓ AI增强版本: + Dify Agent + SSE流式通信 ↓ 完整版本: + 自定义工具 + OpenAPI规范 ``` ## 部署建议 ### 开发环境 1. 后端使用开发模式启动 (`debug=False`) 2. 前端使用 HBuilderX 或 CLI 工具运行 ## 许可证 MIT License