学生课程批量退选工具
🚀 功能概述
本工具提供用户友好的 Web 界面来帮助管理员批量退选学生的课程,支持文件上传、数据预览和可视化操作,让批量退课更加直观便捷。
🏗️ 项目架构
deleclass_副本2/
├── src/ # 后端 API 服务
│ └── main.py # Flask API 服务器
├── toolbox-app/ # 前端 Web 应用
│ ├── src/ # Vue.js 源代码
│ ├── public/ # 静态资源
│ └── package.json # 前端依赖配置
├── requirements.txt # Python 依赖
├── generate_template.py # Excel 模板生成工具
├── .env.example # 环境变量模板
└── README.md # 项目文档
🛠️ 技术栈
后端
- Python 3.x - 主要编程语言
- Flask - Web 框架,提供 API 服务
- openpyxl - Excel 文件处理
- requests - HTTP 请求库
- python-dotenv - 环境变量管理
前端
- Vue.js 3 - 现代化前端框架
- Vite - 快速构建工具
- Element Plus - UI 组件库
- Axios - HTTP 客户端
🎯 核心功能
系统会处理 Excel 文件中的学生 ID 和课程班 ID 列表,执行以下操作:
- 获取学生课程:通过
GET请求获取每个学生当前已选的课程班列表 - 匹配与退课:在学生的已选课程中匹配需要退选的课程班 ID,并通过
DELETE请求发起退课操作 - 结果反馈:提供详细的处理结果和统计报告
🛡️ 安全第一:为了防止误操作,本工具采用 先预览,后确认 的安全执行模式。
🚀 快速开始
1. 启动后端服务
# 安装 Python 依赖
pip3 install -r requirements.txt
# 配置环境变量(创建 .env 文件)
cp .env.example .env
# 编辑 .env 文件,填入您的 API 配置
# 启动 Flask 后端服务
python3 src/main.py
2. 启动前端应用
# 进入前端目录
cd toolbox-app
# 安装 Node.js 依赖
npm install
# 启动开发服务器
npm run dev
3. 使用 Web 界面
- 打开浏览器访问
http://localhost:5173 - 上传包含学生 ID 和课程班 ID 的 Excel 文件
- 预览退课数据,确认无误后执行批量退课
- 查看详细的操作结果和统计信息
📋 数据格式要求
Excel 文件应包含以下列:
| 学生ID | 课程班ID |
|---|---|
| 3831629 | 1820221, 1820210 |
| 3831630 | 1820456 |
- 学生ID: 学生的唯一标识符
- 课程班ID: 需要退选的一个或多个课程班 ID,多个 ID 之间用英文逗号
,分隔
⚙️ 环境配置
创建 .env 文件并配置以下参数:
# --- API 配置 ---
BASE_URL=https://api.seiue.com
# --- 身份认证 ---
# ⚠️ 请将 <你的Token> 替换为有效的 Bearer Token
AUTHORIZATION="Bearer <你的Token>"
X_ROLE="shadow"
X_SCHOOL_ID="665"
X_REFLECTION_ID="969269"
SEMESTER_ID=61626
⚠️ 重要提醒:
- 必须将
AUTHORIZATION中的<你的Token>替换为您的有效令牌.env文件包含敏感信息,请勿提交到公共代码仓库
🔧 开发指南
本地开发环境搭建
-
克隆项目
git clone https://git.vcck.cn/nvex/toolbox.git cd toolbox -
后端开发
# 安装 Python 依赖 pip3 install -r requirements.txt # 配置环境变量 cp .env.example .env # 编辑 .env 文件 # 启动后端服务(开发模式) python3 src/main.py -
前端开发
cd toolbox-app # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build
项目结构说明
├── src/main.py # Flask API 服务器
├── toolbox-app/
│ ├── src/
│ │ ├── components/ # Vue 组件
│ │ ├── views/ # 页面视图
│ │ ├── router/ # 路由配置
│ │ └── store/ # 状态管理
│ ├── public/ # 静态资源
│ └── vite.config.js # Vite 配置
├── requirements.txt # Python 依赖
├── generate_template.py # Excel 模板生成工具
└── .env.example # 环境变量模板
📦 部署指南
生产环境部署
-
后端部署
# 使用 gunicorn 部署 Flask 应用 pip install gunicorn gunicorn -w 4 -b 0.0.0.0:5000 src.main:app -
前端部署
cd toolbox-app npm run build # 将 dist/ 目录部署到 Web 服务器 -
使用 Docker(可选)
# 示例 Dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 CMD ["python", "src/main.py"]
🤝 贡献指南
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🆘 常见问题
Q: 如何生成 Excel 模板?
A: 运行 python3 generate_template.py 生成标准格式的 Excel 模板文件。
Q: API 认证失败怎么办?
A: 请检查 .env 文件中的 AUTHORIZATION 配置,确保 Token 有效且格式正确。
Q: 前端无法连接后端?
A: 确保后端服务已启动(默认端口 5000),检查前端配置中的 API 基础 URL。
Q: Excel 文件格式错误?
A: 确保 Excel 文件包含 "学生ID" 和 "课程班ID" 列,且数据格式符合要求。
📞 技术支持
如有问题或建议,请通过以下方式联系:
Description
Languages
Vue
43.4%
Python
30.4%
CSS
19.9%
JavaScript
5.5%
HTML
0.8%