图书馆系统- Flask SQLite
项目描述
一个开箱即用的图书管理系统,采用统一登录入口 + 双端工作台的结构。
127.0.0.1:8000
V2025003 123456
admin 123456
功能描述
1.读者账号与个人中心(读者登录)
凭借书证号或手机号登录,初始密码为证号后 6 位。登录后可:
– 我的借阅:在借 / 未归还 / 逾期 / 已归还筛选 + 分页,显示应还日期、续借次数、逾期天数与滞纳金;
– 借阅概览:在借册数、逾期册数、累计借阅、剩余可借额度、累计滞纳金一目了然;
– 自助续借:直接续借自己的在借图书(沿用管理端规则:未逾期、未达续借上限、账号未冻结);
– 我的预约与借阅:查看排队中 / 已到书 / 已借出 / 已取消的预约,显示排队位次与到书时间,可自行取消(到书后即可到馆借阅),如有图书读者可直接借阅图书,读者可随时归还图书;
– 预约图书:搜索书名 / 作者 / ISBN / 条码,对已借完的书一键加入预约队列(有可借复本时不开放预约,直接到馆借阅即可);
– 滞纳金查询与缴纳:逐笔列出「图书 / 逾期天数 / 应缴 / 已缴 / 待缴」,可单笔缴纳或一次结清,并显示缴纳历史;应缴金额实时重算,不存在过期快照;
– 借书证挂失:证书遗失可一键挂失,挂失期间禁止借书 / 续借 / 预约(已借图书与历史记录不受影响),证件找回或补办后可自助解除;
– 维护联系方式:自行修改手机号与邮箱(手机号可登录,改动会做占用校验;姓名、证号、可借上限只能由馆员维护);
– 修改密码:改后强制重新登录。
账号被冻结的读者仍可登录查看历史借阅,但无法自助续借。越权访问他人借阅记录一律返回 403。
2.后台控制台(需登录)
概览:馆藏 / 可借 / 在借 / 逾期 / 到期 / 读者六项核心指标,近 14 天借阅趋势图,分类借阅排行,热门图书 TOP6,逾期提醒列表。
图书管理:新增 / 编辑 / 删除、ISBN 自动规整与唯一校验(校验位错误时亮黄提示但不阻断保存,兼容历史条码)、馆藏条码(留空自动生成 `BK` 编号,可填馆内已有条码,唯一校验)与图书简介(≤1000 字,用于门户展示)、分类与关键词筛选(命中书名 / 作者 / ISBN / 条码 / 出版社)、仅看可借、表头点击排序(书名 / 分类 / 出版社 / 年份 / 位置 / 库存,升降序循环并同步 URL)、分页;下架 / 上架一键切换(下架后不再对读者展示、不可借出,档案与借阅历史保留,可随时重新上架);图书详情弹窗展示条码图与简介全文,列表页与详情页均可批量打印条码标签(份数默认 = 总册数、三档标签尺寸);有未归还或历史借阅的图书受删除保护(改用下架)。
读者管理:新增 / 编辑 / 删除、证号唯一校验、类型(学生 / 教师 / 社会 / VIP)、冻结 / 恢复、可借上限单独设置、借阅记录弹窗(含累计罚金);门户账号列显示开通状态,新建读者时自动开通并提示初始密码,支持一键重置密码。
借阅管理:借书(支持扫码枪直扫馆藏条码自动选中,或关键词过滤——结果唯一时自动选中;回车链路可走完整单)、还书(自动结算罚金)、批量还书(表格勾选多行一次归还,逐条独立事务,成功 / 失败逐条汇总反馈)、续借(限次,冻结读者一律拒绝)、按状态筛选(全部 / 在借 / 逾期 / 已归还)、表头点击排序(借出 / 应还 / 归还日期、续借次数、状态、罚金)、逾期天数与罚金自动计算(封顶记录额外标注「已封顶」);删除 / 还书 / 续借等确认框一律显示书名与读者姓名,不再出现内部 ID。
预约管理:按状态页签(排队中 / 已到书 / 已借出 / 已取消 / 全部)查看预约队列,显示图书、读者、预约时间、排队位次与到书时间;支持通知到书(把排队中的预约置为「已到书」,读者在个人中心即可看到提示)与取消预约,按书名 / 条码 / 读者 / 证号关键字检索并分页。还书时系统会自动按序唤醒队列——某一册归还回补库存后,该书最早的排队预约自动转为「已到书」,无需人工干预。
浏览状态可分享 / 可回退:切换视图走 `#hash` 路由并监听 `hashchange`(浏览器前进 / 后退可切换视图);各视图的关键词 / 分类 / 状态 / 页码 / 排序方向同步到 URL(`history.replaceState`),刷新或拷贝链接后筛选与排序均不丢失。
导出:图书管理 / 读者管理 / 借阅管理三个视图的工具栏均有「导出 CSV」,按当前筛选条件导出全量结果(自动翻页,上限 5000 行)。文件带 UTF-8 BOM,Excel / WPS 直接打开不出现中文乱码;借阅明细含借出 / 应还 / 归还日期、续借次数、状态、逾期天数与罚金。
账号管理与操作日志(仅系统管理员):后台新增「账号管理」「操作日志」两个视图。账号管理可建号(系统管理员 / 流通馆员)、改姓名与角色、启停用、重置密码、删除——不能操作自己的账号、最后一个在职系统管理员不可被停用 / 降级 / 删除、用户名不得与读者的借书证号或手机号重名(共用同一登录入口)。操作日志记录每一次后台写操作与登录登出:谁、什么时候、对哪条记录、做了什么、从哪个 IP,越权尝试标「已拦截」;支持按关键词 / 操作者类型 / 动作 / 结果筛选与分页。
运行环境
Python3.10
项目技术
Python + Flask + SQLite
以上系统源码经过技术整理与调试,确保能正常运行


