# lmg **Repository Path**: hngcadmin/lmg ## Basic Information - **Project Name**: lmg - **Description**: python+html+mysql图书管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-12 - **Last Updated**: 2025-12-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图书管理信息系统 基于 Flask + MySQL 的 B/S 架构实现,覆盖分类、作者、读者、图书的基础管理,以及借阅/归还流程和罚款计算。前端使用原生 HTML/CSS/JavaScript,单页即可完成操作。 ## 环境准备 - Python 3.10+(本地通过 `python3` 运行) - MySQL 8.x,监听 `127.0.0.1:3306`,默认账号 `root`/`12345678` - 可访问外网以下载依赖(或在内网提前准备离线包) ## 快速启动 1. 安装依赖 ```bash pip3 install -r requirements.txt ``` 2. 启动 MySQL,并确保账号密码与端口匹配。若账号不同,可通过环境变量覆盖: ```bash export DB_HOST=127.0.0.1 export DB_PORT=3306 export DB_USER=root export DB_PASSWORD=12345678 export DB_NAME=librarydb # 可选,默认 librarydb ``` 3. 运行服务 ```bash python3 app.py ``` 首次启动会自动创建数据库和六张表,并插入少量示例数据。浏览器访问 `http://localhost:5000` 进入前端界面。 > 如果希望用 Navicat 直接初始化数据库,可在当前目录执行 `librarydb.sql` 脚本(已包含建库、建表、示例数据)。 ## macOS / Windows 启动示例 - **macOS**(推荐虚拟环境,避免 PEP 668 限制) ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # 如需自定义端口: export PORT=8000 # 如需自定义数据库连接: export DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=root DB_PASSWORD=12345678 DB_NAME=librarydb python app.py ``` - **Windows (PowerShell)** ```powershell py -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt # 可选端口与数据库参数 setx PORT 8000 setx DB_HOST 127.0.0.1 setx DB_PORT 3306 setx DB_USER root setx DB_PASSWORD 12345678 setx DB_NAME librarydb python app.py ``` 如果不想持久化 `setx`,可在当前会话用 `$env:PORT=8000` 之类的方式。 ## 自测说明 - 使用 `python3 -m compileall .` 校验了代码语法。 - 功能自测流程(需本地有 MySQL 并安装依赖): 1. 启动服务后访问前端,确认统计卡片和示例数据加载正常。 2. 新增分类/作者/读者/图书各一次,列表实时刷新。 3. 选择读者和图书借阅,库存减少且借阅记录显示“借阅中”。 4. 在“归还”面板选择借阅记录归还,库存回升,记录标记已归还并显示罚款(若逾期)。 5. 搜索框输入书名或作者关键字,图书列表按条件过滤。 ## 主要功能与 API - 分类管理:`GET /api/categories`、`POST /api/categories`、`PUT/DELETE /api/categories/` - 作者管理:`GET /api/authors`、`POST /api/authors` - 读者管理:`GET /api/readers`、`POST /api/readers` - 图书管理:`GET /api/books?keyword=` 支持书名/作者模糊检索,`POST /api/books` 新增,`PUT/DELETE /api/books/` 更新/删除 - 借阅:`POST /api/borrows`(默认借期 30 天,借阅上限 5 本,库存实时扣减) - 归还:`POST /api/returns/`(归还自动加库存并按逾期天数计罚款,默认 1 元/天) - 统计:`GET /api/stats` 返回图书总数、读者数、在借数 ## 目录结构 ``` . ├── app.py # Flask 服务端,含建库/建表/样例数据与 REST API ├── main.py # 入口等同 app.py ├── requirements.txt # 依赖清单 ├── static/ │ └── index.html # 单页前端(原生 HTML/CSS/JS) └── design.md # 课程设计说明 ``` ## 其他 - 业务参数可通过环境变量调整:`BORROW_LIMIT`(默认 5)、`FINE_PER_DAY`(默认 1.00)。 - 如果需要关闭调试模式,可将 `app.run(..., debug=False)`。