这是一个基于 Flask + SQLite 的网上请假审批与管理系统,适合课程设计、实验报告和答辩演示。系统采用应用工厂模式,既可以通过 python app.py 本地启动,也保留后续部署到 Web 服务器的能力。
- 学生:提交包含开始/结束日期与时分的请假申请、查看自己的申请、修改或删除待审批申请。
- 老师:查看请假记录、审批待审批申请、查看统计分析。
- 管理员:管理用户、查看全部请假记录、删除申请、查看统计分析。
- 注册流程:学生可直接注册;老师和管理员注册后需要管理员在“注册审批”中手动通过。
- 查询与排序:支持关键字、状态、类型、日期范围筛选,以及按时间或状态排序。
- 状态展示:待审批、已通过、进行中、已过期、已驳回;其中进行中和已过期会根据当前系统时间自动计算。
- 统计可视化:展示状态分布、请假类型统计、月份趋势。
- 安全要求:密码使用
werkzeug.security哈希存储,业务页面均做登录和角色权限校验。
- Windows 10 及以上平台
- Python 3.10 及以上版本
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt如果不创建虚拟环境,也可以直接执行:
python -m pip install -r requirements.txtpython seed.py该命令可以重复执行。系统会幂等创建数据库表和演示账号,不会因为重复插入账号导致报错。
python app.py启动后访问:
http://127.0.0.1:5000
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin |
123456 |
| 老师 | teacher |
123456 |
| 学生 | student |
123456 |
pytest项目在 app.py 中提供了 create_app() 应用工厂,部署到 Web 服务器时可导入该函数创建应用实例。config.py 集中管理 SECRET_KEY、数据库路径和调试配置,部署时应替换默认密钥并关闭调试模式。