master
无人机资产管理系统
BS 架构的无人机资产管理库:管理无人机基本信息(机型、编号、链路ID、飞控ID、备注), 记录每次主状态变更(待组装 / 待调试 / 待飞 / 损坏),可按机型查看"日期 × 飞机编号"的状态透视表, 也可查看每一架无人机的完整状态变更历史。
功能
- 无人机管理:新增、编辑、删除无人机;机型筛选;编号唯一
- 主状态管理:修改状态时写入一条含时间戳的记录(每次修改均保留)
- 自定义状态:内置"待组装/待调试/待飞/损坏",可新增自定义状态并设置/修改颜色、改名;内置与已被使用的状态不可删除(改名会同步更新历史记录)
- 状态历史:每一架无人机的时间线,展示每条变更记录(时间戳 + 状态 + 备注),单条记录可删除
- 飞行历史:每架无人机的飞行记录(日期、时长、起降地点、备注),支持增/删/改;支持统一添加——一次勾选多架飞机编号批量添加,对应飞机自动同步
- 飞行透视表:行=日期、列=编号,单元格=当日飞行次数,支持机型与日期范围筛选
- 按机型透视表:行 = 日期、列 = 飞机编号、单元格 = 当日状态;无变更日期自动沿用前一状态;支持自定义日期范围(默认近 30 天)
- 状态颜色区分:待组装=灰、待调试=橙、待飞=绿、损坏=红
- 手动导出 Excel:点击「导出 Excel」按钮,下载
无人机台账.xlsx;不含日期时导出「无人机台账(含每架飞行次数)+ 状态历史 + 飞行历史」,选择日期时导出「每日状态矩阵 + 状态变更明细 + 无人机台账 + 飞行历史」;飞行历史 sheet 行=飞机编号、首列=飞行次数总计、后列=每日飞行记录;数据以点击时刻为准
技术栈
- 后端:Python + FastAPI + Uvicorn
- 数据库:SQLite(单文件
uav.db,无需安装数据库服务) - 前端:原生 HTML / CSS / JavaScript(无构建工具、无第三方依赖)
- Excel 导出:openpyxl
部署(其他电脑)
- 安装 Python(3.9+):https://www.python.org/downloads/,安装时勾选 Add python.exe to PATH
- 把本项目整个文件夹拷贝到目标电脑(含
main.py、static/、start.bat) - 双击
start.bat—— 首次运行会自动安装 fastapi、uvicorn 并启动服务 - 浏览器自动打开 http://127.0.0.1:8000 即可使用
局域网共享:同一网段内其他电脑浏览器访问
http://本机IP:8000(服务已监听 0.0.0.0)。 数据文件uav.db与程序同目录,备份/迁移时直接拷贝该文件即可。
手动启动
pip install fastapi uvicorn openpyxl
python -m uvicorn main:app --host 0.0.0.0 --port 8000
REST API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/drones?model= |
无人机列表(含当前状态,可按机型筛选) |
| POST | /api/drones |
新增无人机(机型、编号必填,编号唯一) |
| PUT | /api/drones/{id} |
编辑无人机(机型/链路ID/飞控ID/备注) |
| DELETE | /api/drones/{id} |
删除无人机(级联删除其状态记录) |
| GET | /api/drones/models |
全部机型列表 |
| POST | /api/drones/{id}/status |
修改主状态,写入一条含时间戳的记录 |
| GET | /api/drones/{id}/history |
单机完整状态变更记录 |
| DELETE | /api/drones/{id}/history/{record_id} |
删除单条状态历史记录 |
| GET/POST | /api/drones/{id}/flights |
单机飞行历史列表 / 新增飞行记录 |
| PUT/DELETE | /api/drones/{id}/flights/{flight_id} |
修改 / 删除飞行记录 |
| POST | /api/flights/batch |
统一添加飞行历史(多个编号批量同步) |
| GET | /api/flight-matrix?model=&start=&end= |
飞行透视表(当日飞行次数) |
| GET | /api/status-matrix?model=&start=&end= |
按机型返回日期×编号状态矩阵 |
| GET | /api/export-excel |
手动导出 无人机台账.xlsx(台账 + 状态历史两个 sheet) |
| GET/POST | /api/status-types |
状态列表 / 新增自定义状态(name 必填,color 可选自动配色) |
| PUT/DELETE | /api/status-types/{name} |
状态改名/改色(改名同步历史)/ 删除(内置与已使用状态不可删) |
交互式接口文档:启动服务后访问 http://127.0.0.1:8000/docs
目录结构
UAVManager/
├── main.py # FastAPI 后端(应用 + 数据库 + API)
├── start.bat # Windows 一键启动脚本
├── README.md
├── uav.db # SQLite 数据库(运行时自动创建)
└── static/ # 前端页面
├── index.html
├── style.css
└── app.js
Description
Languages
Python
47.4%
JavaScript
41.8%
CSS
5.8%
HTML
3.4%
Batchfile
1.6%