22147a1c03195ad86cf5c824e8198d8264757873
- 新增箱子重命名与删除功能 - 引入新箱子前缀与起始编号配置 - 在首页展示箱子编号范围 - 添加概览按钮,快速查看已启用的物品及其名称 - 实现组件的启用/禁用功能 - 更新数据库结构,新增箱子与组件字段 - 优化箱子与组件管理界面,改进表单与表格展示 - 在索引页面增加箱子详细信息概览区域 - 增强扫描与搜索功能,优化结果显示效果
电子元件库存管理系统 v1.0
一个基于 Flask + SQLite 的轻量库存系统,适合先本地开发,后续部署到宝塔服务器。
当前支持三类容器:
28格小盒大盒:常见 4 连排小盒(竖向 7 排)。14格中盒大盒:中等盒子,无固定摆放图。袋装清单:防静电袋列表模式(每行一个袋位,支持批量新增)。
v1.1 新增能力:
- 支持盒子改名和删除。
- 新增盒子时可设置
前缀 + 起始序号,内部编号自动递增。 - 首页可直接看到每个盒子的编号范围(如
A1-A28)。 - 首页新增概览按钮:快速查看已启用的编号与名称。
- 编辑页支持
启用/停用。
1. 项目结构
inventory/
├── app.py
├── requirements.txt
├── init_db.py
├── data/
│ └── inventory.db # 首次初始化后生成
├── templates/
│ ├── index.html
│ ├── box.html
│ ├── edit.html
│ └── scan.html
└── static/
├── css/
│ └── style.css
└── js/
└── scanner.js
2. 本地运行
2.1 安装依赖
pip install -r requirements.txt
2.2 初始化数据库
python init_db.py
初始化后会生成:data/inventory.db
2.3 启动服务
python app.py
默认访问:http://127.0.0.1:5000
3. 页面说明
3.1 首页 /
- 按容器类型显示 3 个列表。
- 每个列表都可新增盒子。
- 每个盒子可在首页直接改名、修改前缀和起始序号、删除。
- 每个盒子有概览按钮,快速查看已启用条目。
3.2 盒子详情 /box/<box_id>
28格/14格:格子视图,点格子进入编辑。袋装清单:表格视图,支持单条新增和批量新增。- 页面显示自动编号范围(由前缀+起始序号生成)。
3.3 编辑页 /edit/<box_id>/<slot>
- 编辑料号、名称、规格、数量、位置备注、备注。
- 支持勾选启用,或通过按钮启用/停用。
- 可删除当前格子记录。
3.4 扫码/搜索 /scan
- 可按料号或名称搜索。
- 支持扫码枪输入后回车触发搜索。
4. 袋装批量新增格式
在袋装清单页面的批量输入框里,每行一条,可用英文逗号或 Tab 分隔:
料号, 名称, 数量, 规格, 位置备注, 备注
示例:
10K-0603, 贴片电阻10K, 500, 0603, A袋, 常用
100nF-0603, 电容100nF, 300, 0603, B袋, X7R
说明:
料号、名称必填。数量需为大于等于 0 的整数(留空按 0)。- 无效行会跳过并提示。
5. 自动编号规则(新增)
新增盒子时只需填写:
前缀:如A、B、C、BAG起始序号:如1
系统自动生成内部编号:
- 第 1 位:
前缀 + 起始序号 - 第 N 位:
前缀 + (起始序号 + N - 1)
示例:
- 前缀
A、起始1、容量 28 ->A1-A28 - 前缀
B、起始100、容量 14 ->B100-B113
6. 元器件命名建议(简洁版)
为避免命名过长又保证可检索,建议:
料号(part_no):优先写厂家/采购料号,保持唯一。名称(name):品类 + 关键值 + 封装,如电阻10K 0603、电容100nF 0603。规格(specification):补充精度/耐压/温漂等必要信息,如1%、50V X7R。
推荐格式:
名称: 电阻10K 0603
规格: 1%
名称: 电容100nF 0603
规格: 50V X7R
7. 数据库说明
- 使用 SQLite,文件路径:
data/inventory.db - 首次发布执行一次
python init_db.py - 后续通常不需要重复初始化
8. 服务器部署(宝塔)
建议流程:
- 上传代码或
git clone到服务器。 - 创建并启用虚拟环境。
pip install -r requirements.txtpython init_db.py- 用 Gunicorn 启动:
app:app - 宝塔/Nginx 反向代理到 Gunicorn 端口
- 域名解析 + SSL
建议 Gunicorn 仅监听内网:127.0.0.1:5000
9. 日常发布流程
本地开发后:
git add .
git commit -m "feat: xxx"
git push origin main
服务器更新:
cd /www/wwwroot/inventory
git pull origin main
source venv/bin/activate
pip install -r requirements.txt
最后在宝塔里重启 Python 项目。
10. 备份建议
重点备份:data/inventory.db
可按天备份,例如:
cp /www/wwwroot/inventory/data/inventory.db /www/backup/inventory_$(date +%F).db
11. 常见问题
Q1: VS Code 提示无法解析 flask 导入
通常是编辑器没选到正确虚拟环境,不代表代码不能运行。切换解释器到项目 venv 即可。
Q2: 为什么线上不能用 python app.py 长期跑
python app.py 是开发模式。生产请使用 Gunicorn(或其他 WSGI)并由宝塔托管。
Q3: 本地和服务器数据库要实时同步吗
不建议 SQLite 双向实时同步。建议以服务器库为主,本地用于测试。
Description
Languages
Python
59.1%
HTML
32.7%
CSS
8.2%