课堂签到系统-flask sqlite

项目描述
课堂点名依赖教师人工记录,存在效率低、易遗漏、难以统计的问题。本项目实现一个轻量的课堂签到系统

127.0.0.1:5000
lisi 123456
zhangsan 123456

功能描述
学生签到:输入学号 + 姓名完成签到,记录精确到秒 首页 `/`
学生签退:对当天已签到的学号补充签退时间 首页 `/`
防重复签到:同一学号同一天只允许签到一次,重复提交给出明确提示 首页 `/`
查询今日状态:按学号查询当天签到 / 签退情况 首页 `/`
签到记录列表:按日期查看全部签到明细,标记是否迟到 `/records`
数据统计:今日签到人数、已签退人数、迟到人数、累计记录数 首页 / `/records`
导出 CSV:将指定日期的签到记录导出为 CSV(含 BOM,Excel 可直接打开) `/export.csv`
用户注册:创建账号(用户名 + 密码,可绑定学号 / 姓名),密码加盐哈希存储 `/register`
用户登录:校验账号密码并写入会话(session),登录后首页自动预填学号姓名 `/login`
退出登录:清除会话 `/logout`
访问控制:签到记录与 CSV 导出需登录后访问,未登录自动跳转登录页 `/records`、`/export.csv`
身份锁定:登录后首页签到表单的学号 / 姓名锁定为账号档案,只读且服务端强制使用,防止篡改 首页 `/`
角色体系:账户分 `admin`(管理员)与 `user`(普通用户);首个注册用户自动成为管理员 `users.role`
用户管理(管理员):用户的增 / 删 / 改 / 查:新增、编辑(角色 / 学号 / 姓名 / 重置密码)、删除 `/admin/users`
记录删除(管理员):删除单条签到记录,或清空指定日期的全部签到记录 `/records` 内操作
业务约定:09:00 之后签到记为迟到(阈值写在 `store.py` 的 `stats()` 中,便于修改)。

运行环境
Python3.10

项目技术
– 语言:Python 3
– Web 框架:Flask
– 数据库:SQLite 3
– 前端:Jinja2 模板 + 原生 HTML / CSS

以上系统源码经过技术整理与调试,确保能正常运行

提供最优质的资源集合

立即查看 了解详情