视频主设备管理系统

基于 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

快速开始

环境要求

  • Python 3.8+
  • pip

安装依赖

pip install -r requirements.txt

数据库迁移

python manage.py makemigrations
python manage.py migrate

创建管理员

python manage.py createsuperuser

启动服务

python manage.py runserver 0.0.0.0:8000

访问地址

服务 地址
Swagger API文档 http://localhost:8000/swagger/
Redoc API文档 http://localhost:8000/redoc/
Django Admin后台 http://localhost:8000/admin/
设备列表API http://localhost:8000/api/devices/

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/ - 附件管理

认证

# 获取JWT Token
POST /api/token/
Body: {
    "username": "your_username",
    "password": "your_password"
}

# 使用Token
Authorization: Bearer <your_access_token>

Excel导入模板列名

列名 说明 必填
地点 设备所在地点
楼栋 所在楼栋
设备名称 设备标识名
型号 设备型号
品牌 设备品牌
状态 normal/warning/offline/repair/scrap 默认normal
负责人 运维负责人
主序列号 设备主键号
主IP 主要管理IP地址

项目结构

netmeeting-infra/
├── config/
│   ├── settings.py      # Django配置
│   ├── urls.py          # 主路由
│   └── wsgi.py
├── device_management/
│   ├── models.py        # 5个数据库模型
│   ├── serializers.py   # DRF序列化器
│   ├── views.py         # ViewSet视图
│   ├── urls.py          # API路由
│   ├── admin.py         # Admin配置
│   └── migrations/      # 数据库迁移文件
├── manage.py
├── requirements.txt
└── README.md

数据库表结构

  • device - 设备主表15个业务字段
  • device_serial - 序列号子表(唯一约束)
  • device_ip - IP地址子表唯一约束
  • maintenance_record - 维修记录子表
  • device_attachment - 附件管理表

部署方式(可选)

# Docker + Nginx + Gunicorn
# 详见Django官方部署文档

许可证

BSD License

Description
视频会议设备的管理
Readme 111 KiB
Languages
Python 58.7%
HTML 41.3%