请假审批系统-Python Flask MySQL
本项目为前几天收费帮学妹做的一个项目在工作环境中基本使用不到但是很多学校把这个当作编程入门的项目来做故分享出本项目供初学者参考。一、项目描述面向校园场景的轻量级请假审批系统学生凭「姓名 学号」白名单登录提交请假教师凭统一后台密码审批。基于 Flask MySQL Tailwind CSS单文件后端开箱即部署。http://127.0.0.1:5001教师 123456学生 蒋文恺 202405010106二、项目功能– 白名单式学生登录 — 学生仅需姓名 学号系统在 users 表中按 role’student’ 精确匹配姓名与学号不在名单中的人无法登录避免任意注册带来的脏数据。– 统一密码的教师后台 — 教师凭 TEACHER_PASSWORD 进入审批台无需逐个建号契合「单一审批人」的小规模场景部署成本最低。– 完整审批闭环 — 请假状态在 待审批 / 已通过 / 已驳回 间流转审批时可附审批意见学生端实时可见处理结果与审批人。– 并发安全的审批 — 审批 UPDATE 带 WHERE id %s AND status’待审批’ 条件并校验 rowcount两名教师同时操作同一申请时只有一次生效杜绝重复审批。– 前后端双重校验 — 请假类型、事由非空、日期合法性含结束不早于开始在前端 JS 与后端 Python 各校验一遍前端保体验、后端保安全不可被绕过。– SQL 注入防护 — 所有数据库查询统一使用 %s 占位符参数化杜绝字符串拼接型注入。– 基于 session 的鉴权 — 通过 login_required(role…) 装饰器统一拦截且每次请求都回查数据库确认用户仍存在防止陈旧 session 越权访问。– 响应式 UI — Tailwind CSSCDN 引入实现暖色大地系界面桌面端表格、移动端卡片自适应。– 容器化与健康检查就绪 — 提供 Dockerfile / docker-compose.yaml内置 /health 端点供 Coolify、负载均衡器探活。三、运行环境开发环境 pycharm运行环境 flaskmysqlpython3.8四、项目技术Web 框架 Flask 3.x数据库 MySQL 8.0数据库驱动 PyMySQL模板引擎 Jinja2前端样式 Tailwind CSS 3.x以上系统源码经过技术整理与调试确保能正常运行五、项目截图