视频主设备管理系统
基于 Django REST Framework 的视频设备全生命周期管理后端API服务。
项目背景
随着视频监控、视频会议等业务的扩展,视频主设备(如视频编码器、解码器、矩阵、NVR等)数量快速增长。当前采用人工表格管理方式,存在设备信息分散、维护记录缺失、IP地址冲突、序列号追溯困难等问题。
功能特性
核心模块
| 模块 |
功能说明 |
| 设备管理 |
设备增删改查;按地点/楼栋/状态筛选;服役时长自动计算 |
| 序列号管理 |
支持多序列号(主序列号+辅助);唯一性校验 |
| IP地址管理 |
支持多IP(管理/业务/备用);主IP标识;唯一性校验 |
| 维修记录 |
故障描述/维修内容/更换配件/维修人/费用;历史追溯 |
| 附件与缩略图 |
照片/说明书上传;自动生成缩略图展示 |
| 巡检管理 |
最后巡检时间记录;保修到期预警 |
| Excel导入导出 |
批量导入设备;导出设备列表(含主IP/序列号/维修简述) |
技术栈
| 层级 |
技术选型 |
| 后端框架 |
Django 4.2 + Django REST Framework 3.15 |
| 数据库 |
SQLite3 (可切换MySQL/PostgreSQL) |
| 对象存储 |
本地文件系统 (可扩展MinIO) |
| 图片处理 |
Pillow |
| 身份认证 |
JWT + Session |
| API文档 |
drf-yasg (Swagger/Redoc) |
| Excel处理 |
openpyxl + pandas |
| 日志系统 |
loguru |
快速开始
环境要求
安装依赖
数据库迁移
创建管理员
启动服务
访问地址
API端点
设备管理
| 方法 |
端点 |
说明 |
| GET |
/api/devices/ |
设备列表(分页/过滤/搜索) |
| POST |
/api/devices/ |
创建设备(可同时创建主序列号和主IP) |
| GET |
/api/devices/{id}/ |
设备详情(含序列号/IP/维修记录) |
| PUT |
/api/devices/{id}/ |
全量更新设备 |
| PATCH |
/api/devices/{id}/ |
部分更新设备 |
| DELETE |
/api/devices/{id}/ |
删除设备(级联删除子表) |
| GET |
/api/devices/export_excel/ |
导出Excel |
| POST |
/api/devices/import_excel/ |
导入Excel |
| POST |
/api/devices/{id}/upload_attachment/ |
上传附件 |
其他资源
/api/serials/ - 序列号管理
/api/ips/ - IP地址管理
/api/maintenance/ - 维修记录管理
/api/attachments/ - 附件管理
认证
Excel导入模板列名
| 列名 |
说明 |
必填 |
| 地点 |
设备所在地点 |
是 |
| 楼栋 |
所在楼栋 |
否 |
| 设备名称 |
设备标识名 |
是 |
| 型号 |
设备型号 |
否 |
| 品牌 |
设备品牌 |
否 |
| 状态 |
normal/warning/offline/repair/scrap |
否(默认normal) |
| 负责人 |
运维负责人 |
否 |
| 主序列号 |
设备主键号 |
否 |
| 主IP |
主要管理IP地址 |
否 |
项目结构
数据库表结构
device - 设备主表(15个业务字段)
device_serial - 序列号子表(唯一约束)
device_ip - IP地址子表(唯一约束)
maintenance_record - 维修记录子表
device_attachment - 附件管理表
部署方式(可选)
许可证
BSD License