图书借阅管理系统(FastAPI + Vue)

源码下载:

「2026图书借阅管理系统」

链接:https://pan.quark.cn/s/1eb5ead5cb85

图书管理系统

一个基于 FastAPI + Vue.js + Element-UI 的现代化图书借阅管理系统,采用前后端分离架构,提供完整的图书管理、借阅管理和读者管理功能。

项目简介

本系统是一个典型的 Web 管理系统,适用于图书馆、学校图书馆、企业图书室等场景。系统采用现代化的技术栈,具有美观的界面、完善的功能和良好的用户体验。

主要功能

管理员功能

  • 数据统计:可视化展示图书分类占比、借阅情况等统计数据

  • 图书管理:图书的增删改查、分类管理、库存管理

  • 借书管理:办理图书借阅、查看当前借阅记录

  • 还书管理:处理图书归还、异常情况处理(损坏、丢失)

  • 公告管理:发布和管理图书馆公告

  • 读者管理:读者信息管理、状态管理

  • 个人设置:修改密码

读者功能

  • 公告通知:查看图书馆公告

  • 借阅历史:纵向时间轴展示借还记录

  • 个人信息:查看个人资料和借阅统计

  • 修改密码:修改登录密码

技术栈

后端技术

  • FastAPI 0.104.1:现代化的 Python Web 框架,自动生成 API 文档

  • Uvicorn 0.24.0:ASGI 服务器

  • SQLAlchemy 2.0.23:Python ORM 框架

  • SQLite:轻量级关系数据库

  • Pydantic 2.5.0:数据验证和序列化

  • python-jose 3.3.0:JWT Token 认证

  • passlib 1.7.4:密码加密

前端技术

  • Vue.js 2.x:渐进式 JavaScript 框架

  • Element-UI 2.15.14:基于 Vue 的 UI 组件库

  • ECharts 5.4.3:数据可视化图表库

项目结构

复制代码
E:\admin_system_library\
├── backend/                   # 后端目录
│   ├── main.py               # FastAPI 主入口文件
│   ├── database.py           # 数据库连接配置
│   ├── models.py             # SQLAlchemy 数据模型
│   ├── schemas.py            # Pydantic 数据验证模型
│   ├── auth.py               # JWT 认证工具
│   ├── seed_data.py          # 初始化测试数据
│   ├── routers/              # 路由模块
│   │   ├── __init__.py
│   │   ├── auth.py           # 注册/登录路由
│   │   ├── books.py          # 图书管理路由
│   │   ├── borrow.py         # 借阅管理路由
│   │   ├── reader.py         # 读者管理路由
│   │   ├── stats.py          # 数据统计路由
│   │   └── announcement.py   # 公告管理路由
│   └── library.db            # SQLite 数据库文件
│
├── frontend/                  # 前端目录
│   ├── index.html            # 登录/注册页面
│   ├── admin.html            # 管理员面板
│   ├── reader.html           # 读者面板
│   └── asset/                # 静态资源
│       ├── vue.js            # Vue.js 框架
│       ├── element-ui.css    # Element-UI 样式
│       ├── element-ui.js     # Element-UI 组件库
│       └── fonts/            # 字体文件
│
├── requirements.txt           # Python 依赖列表
├── README.md                 # 项目说明文档
└── 项目报告.md               # 项目详细报告

快速开始

环境要求

  • Python 3.8+

  • 现代浏览器(Chrome、Firefox、Edge 等)

安装步骤

  1. 安装 Python 依赖

    复制代码
    cd backend
    pip install -r ../requirements.txt
  2. 初始化数据库

    复制代码
    cd backend
    python seed_data.py
  3. 启动后端服务器

    复制代码
    cd backend
    python main.py

    服务器将运行在 http://localhost:8000

    API 文档访问:http://localhost:8000/docs

  4. 打开前端页面

    在浏览器中打开 frontend/index.html

测试账号

复制代码
管理员账号:
  用户名: admin
  密码: admin123
​
读者账号:
  用户名: reader001 ~ reader005
  密码: reader123

功能截图

管理员面板

  • 左侧深色侧边栏导航

  • 顶部用户信息栏

  • 统计卡片展示关键数据

  • 图书分类饼图

  • 图书列表支持搜索和分页

读者端

  • 左侧绿色主题侧边栏

  • 公告通知卡片

  • 借阅历史时间轴

  • 个人信息展示

数据库设计

主要数据表

  • users:用户表(管理员、读者)

  • categories:图书分类表

  • books:图书表

  • readers:读者信息表

  • borrow_records:借阅记录表

  • announcements:公告表

API 接口

认证接口

  • POST /api/auth/register - 用户注册

  • POST /api/auth/login - 用户登录

  • GET /api/auth/me - 获取当前用户信息

  • POST /api/auth/change-password - 修改密码

图书管理

  • GET /api/books/ - 获取图书列表(支持分页、搜索)

  • POST /api/books/ - 新增图书

  • PUT /api/books/{id} - 更新图书

  • DELETE /api/books/{id} - 删除图书

  • GET /api/books/categories/list - 获取分类列表

借阅管理

  • POST /api/borrow/ - 借书

  • POST /api/borrow/return - 还书

  • GET /api/borrow/active - 获取未归还记录

  • GET /api/borrow/reader/{card_no} - 获取读者借阅历史

数据统计

  • GET /api/stats/overview - 获取总体统计

  • GET /api/stats/category - 获取分类统计

详细 API 文档请访问:http://localhost:8000/docs

开发说明

添加新功能

  1. backend/models.py 中定义数据模型

  2. backend/schemas.py 中定义数据验证模型

  3. backend/routers/ 中创建路由文件

  4. backend/main.py 中注册路由

  5. 在前端 admin.htmlreader.html 中添加页面和功能

切换数据库

修改 backend/database.py 中的连接字符串:

复制代码
# SQLite
SQLALCHEMY_DATABASE_URL = "sqlite:///./library.db"
​
# MySQL
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://user:password@localhost/dbname"
​
# PostgreSQL
SQLALCHEMY_DATABASE_URL = "postgresql://user:password@localhost/dbname"

系统特色

  1. 专业的 UI 设计

    • 采用侧边栏导航布局

    • 美观的渐变色彩

    • 流畅的页面切换动画

  2. 完善的权限管理

    • JWT Token 认证

    • 角色权限控制(管理员/读者)

  3. 数据可视化

    • ECharts 饼图展示图书分类

    • 统计卡片展示关键指标

  4. 良好的用户体验

    • 响应式设计

    • 表单验证

    • 友好的错误提示

常见问题

Q:如何重置数据库?

A:删除 backend/library.db 文件,然后重新运行 python seed_data.py

Q:前端无法连接后端?

A:检查后端服务器是否启动,确认 CORS 配置正确

Q:如何修改端口?

A:修改 backend/main.py 中的端口号:uvicorn.run(app, host="0.0.0.0", port=8000)

许可证

MIT License

作者

图书管理系统开发团队

更新日志

v1.0.0 (2025-01-30)

  • 初始版本发布

  • 完成图书管理功能

  • 完成借阅管理功能

  • 完成读者端功能

  • 完成数据统计功能

相关推荐
常年游走在bug的边缘2 小时前
掌握JavaScript作用域:从函数作用域到块级作用域的演进与实践
开发语言·前端·javascript
极致♀雨2 小时前
vue2+elementUI table表格勾选行冻结/置顶
前端·javascript·vue.js·elementui
林shir2 小时前
3-15-前端Web实战(Vue工程化+ElementPlus)
前端·javascript·vue.js
zhaoyin19943 小时前
Fiddler弱网实战
前端·测试工具·fiddler
换日线°4 小时前
前端炫酷展开效果
前端·javascript·vue
夏幻灵5 小时前
过来人的经验-前端学习路线
前端
CappuccinoRose5 小时前
React框架学习文档(七)
开发语言·前端·javascript·react.js·前端框架·reactjs·react router
FFF-X5 小时前
前端字符串模糊匹配实现:精准匹配 + Levenshtein 编辑距离兜底
前端
Hi_kenyon5 小时前
Ref和Reactive都是什么时候使用?
前端·javascript·vue.js