资产管理系统 使用说明
一、系统概述
资产管理系统是一款基于Web的IT资产管理工具,用于管理企业的硬件设备和软件许可证。系统支持中英文双语界面,可从Active Directory自动同步设备,也支持Excel批量导入和手动录入。
主要功能
- 硬件资产管理(电脑、打印机、交换机、服务器等)
- 软件资产管理(许可证、版本、到期提醒)
- 域控(AD)设备自动同步
- Excel批量导入/导出
- 报表导出
- 中英文双语支持
二、系统安装与启动
环境要求
- Python 3.7+
- Windows/Linux/macOS
安装步骤
# 1. 进入项目目录
cd 资产信息管理软件
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动系统
python app.py
访问系统
启动后,打开浏览器访问:http://127.0.0.1:5000
三、功能模块说明
3.1 仪表盘(首页)
首页展示系统整体概况:
- 硬件资产总数:所有硬件设备数量
- 电脑设备:计算机类设备数量
- 软件资产总数:所有软件许可数量
- 已过期许可:许可证已过期的软件数量
- 最近添加的硬件/软件:最新录入的资产列表
- 快捷操作:添加硬件、添加软件、导入、导出按钮
3.2 硬件资产管理
3.2.1 查看硬件列表
路径:侧边栏 → 硬件资产
列表展示所有硬件设备,支持:
- 搜索:按名称、SN、IP、主机名搜索
- 筛选:按设备类型、状态、部门筛选
- 分页:每页20条记录
3.2.2 添加硬件
路径:硬件资产 → 点击 添加 按钮
需要填写的信息:
| 字段 |
说明 |
是否必填 |
| 设备名称 |
设备的标识名称 |
✅ 必填 |
| 设备类型 |
电脑/打印机/交换机/服务器/其他 |
✅ 必填 |
| 序列号/SN |
设备序列号 |
选填 |
| 型号 |
设备型号 |
选填 |
| 制造商 |
设备制造商 |
选填 |
| 使用人 |
当前使用者姓名 |
选填 |
| 使用部门 |
所属部门 |
选填 |
| 位置 |
设备物理位置 |
选填 |
| IP地址 |
设备IP地址 |
选填 |
| MAC地址 |
网卡物理地址 |
选填 |
| 主机名 |
计算机名 |
选填 |
| 状态 |
使用中/闲置/维修中/已报废 |
选填 |
| 购买日期 |
设备购买日期 |
选填 |
| 保修到期 |
保修截止日期 |
选填 |
| 备注 |
其他备注信息 |
选填 |
3.2.3 编辑硬件
在硬件列表中,点击对应记录的 编辑按钮(铅笔图标),修改后保存。
3.2.4 删除硬件
在硬件列表中,点击对应记录的 删除按钮(垃圾桶图标),确认后删除。
⚠️ 删除操作不可恢复,请谨慎操作。
3.3 软件资产管理
3.3.1 查看软件列表
路径:侧边栏 → 软件资产
列表展示所有软件资产,包括:
- 软件名称、类型、版本
- 许可证类型和数量
- 到期日期(已过期会标红显示)
- 使用状态
3.3.2 添加软件
路径:软件资产 → 点击 添加 按钮
需要填写的信息:
| 字段 |
说明 |
是否必填 |
| 软件名称 |
软件名称 |
✅ 必填 |
| 软件类型 |
操作系统/办公软件/数据库/安全软件/开发工具/其他 |
选填 |
| 版本 |
当前版本号 |
选填 |
| 供应商 |
软件供应商 |
选填 |
| 许可证密钥 |
License Key |
选填 |
| 许可类型 |
永久/订阅/试用/开源 |
选填 |
| 许可数量 |
可用许可证数量 |
选填 |
| 已使用数量 |
已分配的许可数量 |
选填 |
| 购买日期 |
软件购买日期 |
选填 |
| 到期日期 |
许可证到期日期 |
选填 |
| 服务器名称 |
安装的服务器名 |
选填 |
| 服务器IP |
服务器IP地址 |
选填 |
| 安装路径 |
软件安装目录 |
选填 |
| 使用部门 |
使用该软件的部门 |
选填 |
| 负责人 |
软件管理负责人 |
选填 |
| 备注 |
其他备注信息 |
选填 |
3.3.3 版本更新日志
在编辑软件页面右侧,可以记录软件的版本更新历史:
- 点击版本日志区域的 + 按钮
- 填写版本号、更新日期、更新人、更新内容
- 保存后会自动更新软件的当前版本
3.4 从域控(AD)同步设备
如果企业使用Active Directory管理计算机,可以自动同步设备信息。
3.4.1 配置AD连接
在项目根目录创建 .env 文件:
AD_SERVER=192.168.1.10
AD_DOMAIN=COMPANY
AD_USERNAME=administrator
AD_PASSWORD=your-password
AD_SEARCH_BASE=DC=company,DC=local
| 参数 |
说明 |
| AD_SERVER |
AD域控服务器地址(IP或域名) |
| AD_DOMAIN |
域名(如 COMPANY) |
| AD_USERNAME |
有读取权限的账户 |
| AD_PASSWORD |
账户密码 |
| AD_SEARCH_BASE |
LDAP搜索基础DN |
3.4.2 变更域服务器信息
对于可执行文件版本:
- 关闭程序
- 在程序同目录下找到或创建
.env 文件
- 使用文本编辑器修改AD相关配置
- 保存文件并重启程序
- 验证配置是否生效
对于Python源码版本:
- 关闭程序
- 在项目根目录找到或创建
.env 文件
- 使用文本编辑器修改AD相关配置
- 保存文件并重启程序
- 验证配置是否生效
注意事项:
- 修改配置后必须重启程序才能生效
- 确保输入的域名、用户名和密码正确
- 确保AD账户有读取计算机对象的权限
- 如果忘记了搜索基础DN,可以咨询域管理员
3.4.3 执行同步
- 进入 硬件资产 页面
- 点击右上角 AD同步 按钮
- 等待同步完成,系统会提示同步数量
📌 同步会自动识别已存在的设备,避免重复导入。
3.5 Excel导入导出
3.5.1 导入硬件资产
- 进入 硬件资产 → 点击 导入
- 点击 下载导入模板 获取Excel模板
- 按照模板格式填写数据
- 上传填写好的Excel文件
- 系统自动解析并导入
3.5.2 导入软件资产
操作同上,路径:软件资产 → 导入
3.5.3 导出报表
- 硬件资产 → 点击 导出 按钮
- 软件资产 → 点击 导出 按钮
导出的Excel文件会根据当前语言设置生成中文或英文表头。
3.5.4 导入模板字段说明
硬件资产模板:
设备名称, 设备类型, 序列号, 型号, 制造商, 使用人, 使用部门,
位置, IP地址, MAC地址, 主机名, 状态, 购买日期, 保修到期, 备注
软件资产模板:
软件名称, 软件类型, 版本, 供应商, 许可证密钥, 许可类型,
许可数量, 已使用数量, 购买日期, 到期日期, 服务器名称,
服务器IP, 安装路径, 使用部门, 负责人, 状态, 备注
3.6 切换语言
系统支持中文和英文两种语言:
- 在页面右上角找到语言切换区域
- 点击 中文 或 English 切换语言
- 切换后页面自动刷新为对应语言
四、数据字典
4.1 设备类型
| 代码 |
中文 |
英文 |
| computer |
电脑 |
Computer |
| printer |
打印机 |
Printer |
| switch |
交换机 |
Switch |
| server |
服务器 |
Server |
| other |
其他 |
Other |
4.2 硬件状态
| 代码 |
中文 |
英文 |
| active |
使用中 |
Active |
| inactive |
闲置 |
Inactive |
| maintenance |
维修中 |
Maintenance |
| retired |
已报废 |
Retired |
4.3 软件类型
| 代码 |
中文 |
英文 |
| os |
操作系统 |
Operating System |
| office |
办公软件 |
Office |
| database |
数据库 |
Database |
| security |
安全软件 |
Security |
| development |
开发工具 |
Development |
| other |
其他 |
Other |
4.4 许可类型
| 代码 |
中文 |
英文 |
| perpetual |
永久 |
Perpetual |
| subscription |
订阅 |
Subscription |
| trial |
试用 |
Trial |
| open-source |
开源 |
Open Source |
五、API接口
系统提供RESTful API接口,可供其他系统集成调用。
5.1 获取硬件资产列表
GET /api/hardware
5.2 获取单个硬件资产
GET /api/hardware/{id}
5.3 获取软件资产列表
GET /api/software
5.4 获取单个软件资产(含版本日志)
GET /api/software/{id}
5.5 获取统计数据
GET /api/stats
返回示例:
{
"hardware_count": 100,
"software_count": 50,
"computer_count": 80,
"printer_count": 10,
"expired_software": 5
}
5.6 测试AD连接
POST /api/test-ad
Content-Type: application/json
{
"server": "192.168.1.10",
"domain": "COMPANY",
"username": "admin",
"password": "password",
"search_base": "DC=company,DC=local"
}
六、常见问题
Q1: 如何备份数据?
系统使用SQLite数据库,数据文件为项目根目录下的 assets.db,定期复制该文件即可备份。
Q2: 忘记修改端口怎么办?
编辑 app.py 文件,修改最后一行的端口号:
app.run(debug=True, host='0.0.0.0', port=5000) # 修改5000为其他端口
Q3: AD同步失败怎么办?
- 检查网络是否能访问AD服务器
- 确认账号密码正确
- 确认账号有读取计算机对象的权限
- 检查
.env 文件中的 AD_SEARCH_BASE 是否正确
Q4: 如何在生产环境部署?
建议使用Gunicorn或uWSGI作为WSGI服务器,配合Nginx反向代理:
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
七、技术支持
如有问题,请检查:
- Python版本是否为3.7+
- 所有依赖是否正确安装
- 数据库文件是否有写入权限
文档版本:v1.0
更新日期:2025年12月30日
[Python] 纯文本查看 复制代码
"""
资产管理系统 - 主应用
"""
import os
from flask import Flask, request, session
from flask_babel import Babel
from config import Config
from models import db
def get_locale():
"""获取当前语言"""
# 优先从session获取
if 'lang' in session:
return session['lang']
# 从请求参数获取
lang = request.args.get('lang')
if lang in ['zh', 'en']:
return lang
# 从Accept-Language头获取
return request.accept_languages.best_match(['zh', 'en']) or 'zh'
def create_app(config_class=Config):
"""创建Flask应用实例"""
app = Flask(__name__)
app.config.from_object(config_class)
# 初始化扩展
db.init_app(app)
# 初始化Babel
babel = Babel(app, locale_selector=get_locale)
# 确保上传目录存在
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
# 注册蓝图
from routes import main_bp, hardware_bp, software_bp, api_bp
app.register_blueprint(main_bp)
app.register_blueprint(hardware_bp, url_prefix='/hardware')
app.register_blueprint(software_bp, url_prefix='/software')
app.register_blueprint(api_bp, url_prefix='/api')
# 创建数据库表
with app.app_context():
db.create_all()
return app
# 创建应用实例
app = create_app()
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)