基于Python+Vue3的图书管理系统
·
下载地址
网盘内附带教程,代码文件完整,可提供远程部署
夸克网盘
百度网盘
系统截图











项目简介
这是一个基于 Python Flask 框架开发的图书管理系统后端服务,配合 Vue3 前端项目使用。系统支持图书管理、用户管理、角色权限、借阅管理等功能。
技术栈
后端框架
- Flask: 2.0.2 - Web 框架
- Flask-SQLAlchemy: 2.5.1 - ORM 数据库操作
- Flask-JWT-Extended: 4.6.0 - JWT 身份认证
- Flask-Migrate: 2.6.0 - 数据库迁移
- Flask-Cors: 3.0.10 - 跨域支持
- Flask-Session: 0.4.0 - Session 管理
- flask-redis: 0.4.0 - Redis 集成
数据库与缓存
- MySQL: 关系型数据库
- PyMySQL: 1.0.0 - MySQL 驱动
- SQLAlchemy: 1.4.41 - SQL 工具包
- Redis: 5.0.2 - 缓存和 Session 存储
其他依赖
- loguru: 0.7.2 - 日志处理
- pandas: 2.0.3 - 数据处理
- cryptography: 42.0.7 - 加密库
- Werkzeug: 2.3.6 - WSGI 工具库
- Alembic: 1.9.4 - 数据库迁移工具
Python 版本要求
本项目支持以下 Python 版本:
- Python 3.7+
- 推荐使用 Python 3.8 或 3.10
从 __pycache__ 目录可以看出,项目已在 Python 3.7、3.8、3.10 上成功运行过。
项目结构
flask-book-manage-system/
├── app.py # 应用入口文件
├── settings.py # 全局配置文件
├── requirements.txt # 依赖包列表
├── apps/ # 应用模块
│ ├── __init__.py # 应用工厂
│ ├── User/ # 用户模块
│ ├── book/ # 图书模块
│ ├── author/ # 作者模块
│ ├── publish/ # 出版社模块
│ ├── classification/ # 图书分类模块
│ ├── role/ # 角色权限模块
│ ├── permission/ # 权限模块
│ ├── audit/ # 借阅审核模块
│ └── notice/ # 公告模块
├── exts/ # 扩展模块
│ ├── db.py # 数据库初始化
│ ├── auth.py # 认证相关
│ ├── common.py # 公共函数
│ ├── logHandler.py # 日志处理
│ └── sendmail.py # 邮件发送
├── static/images/ # 图片上传目录
└── logs/ # 日志目录
主要功能模块
1. 用户管理 (User)
- 用户注册、登录
- 用户信息管理
- 头像上传
- 图书收藏功能
2. 角色权限管理 (Role & Permission)
- 角色管理
- 权限管理
- 角色权限分配
3. 图书管理 (Book)
- 图书信息增删改查
- 图书状态管理(入库/已借出/丢失)
- 图书图片上传
- Excel 批量导入
- 图书评分
- 借阅统计
4. 作者管理 (Author)
- 作者信息管理
5. 出版社管理 (Publish)
- 出版社信息管理
6. 图书分类管理 (Classification)
- 图书分类管理
7. 借阅管理 (Audit)
- 图书借阅申请
- 借阅审批
- 归还管理
- 借阅记录
8. 公告管理 (Notice)
- 公告发布与管理
环境要求
必需软件
- Python: 3.7 或更高版本
- MySQL: 5.7 或更高版本
- Redis: 5.0 或更高版本
环境配置
-
MySQL 数据库配置
-
创建数据库:
book_manage -
在
settings.py中修改数据库连接信息:HOST = '127.0.0.1' PORT = '3306' DATABASE = 'book_manage' USERNAME = 'root' PASSWORD = 'your_password'
-
-
Redis 配置
- 确保 Redis 服务已启动
- 默认配置:
127.0.0.1:6379
-
前端地址配置
-
在
settings.py中修改前端地址:VUE_ADDR = 'http://127.0.0.1:5173' # 开发环境
-
快速开始
1. 安装依赖
pip install -r requirements.txt
2. 配置数据库
确保 MySQL 和 Redis 服务已启动,并根据需要修改 settings.py 中的配置。
3. 数据库迁移
# 初始化迁移(首次运行)
flask db init
# 创建迁移脚本
flask db migrate -m "initial migration"
# 执行迁移
flask db upgrade
4. 启动服务
python app.py
服务将在 http://127.0.0.1:8888 启动(可在 settings.py 中修改端口)。
配置说明
settings.py 主要配置项
| 配置项 | 说明 | 默认值 |
|---|---|---|
| SERVER_IP | 服务监听 IP | 127.0.0.1 |
| SERVER_PORT | 服务端口 | 8888 |
| SECRET_KEY | Session 加密密钥 | *(%#4sxcz(^(#$#8423 |
| JWT_SECRET_KEY | JWT 密钥 | *(%#4sxcz(^(#$#11223 |
| JWT_ACCESS_TOKEN_EXPIRES | Token 有效期 | 24小时 |
| JWT_REFRESH_TOKEN_EXPIRES | 刷新 Token 有效期 | 7天 |
| UPLOAD_FOLDER | 图片上传目录 | ./static/images/ |
| EMAIL_SERVER_ADDR | 邮件服务器 | smtp.qq.com |
| NOTICE_TYPE | 通知类型 | 0 (关闭) |
API 认证
系统使用 JWT (JSON Web Token) 进行身份认证:
- Token 存储位置: HTTP Header
- Header 名称:
X-Access-Token - Token 有效期: 24 小时
- 刷新 Token 有效期: 7 天
开发说明
代码规范
- 遵循 PEP 8 代码规范
- 使用中文注释
- 模型类位于
apps/<module>/model.py - 视图函数位于
apps/<module>/views.py
日志
- 使用 loguru 进行日志记录
- 日志文件存储在
logs/目录 - 文件命名格式:
YYYY-MM-DD-HH-MM-SS-run.log
常见问题
1. 数据库连接失败
- 检查 MySQL 服务是否启动
- 确认
settings.py中的数据库配置正确 - 确认数据库
book_manage已创建
2. Redis 连接失败
- 检查 Redis 服务是否启动
- 确认 Redis 端口 6379 未被占用
3. 依赖安装失败
- 建议使用虚拟环境
- 尝试升级 pip:
pip install --upgrade pip
注意事项
- 数据库密码: 请务必修改
settings.py中的数据库密码,不要使用默认密码 - 密钥安全: 生产环境请修改
SECRET_KEY和JWT_SECRET_KEY - 端口配置: 修改后端端口后,前端也需要相应修改
- 文件上传: 确保
static/images/目录有写入权限
代码错误检查
经过分析,项目代码结构清晰,没有发现明显的语法错误。项目使用的依赖版本兼容,各模块功能完整。
许可证
本项目仅供学习和研究使用。
更多推荐


所有评论(0)