在一次校园技术交流会上,两位计算机专业的学生——小李和小张,正在讨论如何为理工大学的IT资产进行有效管理。
小李:“最近我们学校IT资产越来越多了,设备种类也复杂,管理起来有点混乱。”
小张:“是啊,尤其是服务器、电脑、打印机这些设备,如果不能统一管理,很容易出现资源浪费或者丢失的情况。”
小李:“那有没有什么办法可以解决这个问题?我听说有些高校已经用上了IT资产管理系统。”
小张:“对,我们可以自己开发一个简单的IT资产管理系统。你有接触过相关技术吗?”
小李:“我学过Python和数据库,可能可以尝试做出来。”
小张:“那太好了!我们可以先设计一下系统的功能模块,比如设备登记、查询、维护记录、权限管理等。”
小李:“好的,那我们先从数据库开始设计吧。”
小张:“嗯,我们可以使用MySQL作为数据库,创建一个名为it_assets的数据库,里面有一个设备表(assets)。”
小李:“让我写个SQL语句来创建这个表。”
CREATE DATABASE it_assets;
USE it_assets;
CREATE TABLE assets (
id INT AUTO_INCREMENT PRIMARY KEY,
asset_type VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
serial_number VARCHAR(50) UNIQUE NOT NULL,
location VARCHAR(100),
status ENUM('available', 'in_use', 'maintenance') DEFAULT 'available',
last_maintenance DATE,
assigned_to VARCHAR(100)
);
小张:“这个表结构看起来不错,能支持基本的资产信息存储。”
小李:“接下来我们可以用Python来编写一些操作数据库的代码,比如添加设备、查询设备、更新状态等。”
小张:“好的,我们可以使用Python的MySQLdb库来连接数据库。”
小李:“那我先写一个添加设备的函数。”
import mysql.connector
def add_asset(asset_type, name, serial_number, location, status, last_maintenance, assigned_to):
conn = mysql.connector.connect(
host="localhost",
user="root",
password="your_password",
database="it_assets"
)
cursor = conn.cursor()
query = "INSERT INTO assets (asset_type, name, serial_number, location, status, last_maintenance, assigned_to) VALUES (%s, %s, %s, %s, %s, %s, %s)"
values = (asset_type, name, serial_number, location, status, last_maintenance, assigned_to)
cursor.execute(query, values)
conn.commit()
cursor.close()
conn.close()
add_asset("computer", "Laptop 1", "SN123456", "Lab A", "available", None, None)
小张:“这段代码可以将设备信息插入到数据库中。接下来我们可以写一个查询函数。”
小李:“好的,我来写一个查询所有设备的函数。”
def get_all_assets():
conn = mysql.connector.connect(
host="localhost",

user="root",
password="your_password",
database="it_assets"
)
cursor = conn.cursor()
cursor.execute("SELECT * FROM assets")
results = cursor.fetchall()
for row in results:
print(row)
cursor.close()
conn.close()
get_all_assets()
小张:“这样就能看到所有的设备信息了。还可以根据条件查询,比如按状态或位置筛选。”
小李:“没错,我们还可以加入更新设备状态的功能。”
小张:“那我们就写一个update_asset_status函数。”
def update_asset_status(serial_number, new_status):
conn = mysql.connector.connect(
host="localhost",
user="root",
password="your_password",
database="it_assets"
)
cursor = conn.cursor()
query = "UPDATE assets SET status = %s WHERE serial_number = %s"
values = (new_status, serial_number)
cursor.execute(query, values)
conn.commit()
cursor.close()
conn.close()
update_asset_status("SN123456", "in_use")
小李:“这就可以修改设备的状态了,比如从可用改为在用。”
小张:“那我们再加一个删除设备的功能吧。”
小李:“好的,不过要注意删除前要确认设备是否存在,避免误删。”
def delete_asset(serial_number):
conn = mysql.connector.connect(
host="localhost",
user="root",
password="your_password",
database="it_assets"
)
cursor = conn.cursor()
query = "DELETE FROM assets WHERE serial_number = %s"
values = (serial_number,)
cursor.execute(query, values)
conn.commit()
cursor.close()
conn.close()
delete_asset("SN123456")
小张:“现在我们已经有了一个基本的IT资产管理系统,可以实现添加、查询、更新和删除设备的操作。”
小李:“接下来我们可以考虑增加用户权限管理,比如管理员可以操作所有设备,普通用户只能查看部分信息。”
小张:“对,我们可以引入用户表,设置不同角色,并在操作时进行权限验证。”
小李:“那我可以先创建一个users表。”
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(100) NOT NULL,
role ENUM('admin', 'user') DEFAULT 'user'
);
小张:“然后我们在每次操作之前检查用户的权限。”
小李:“比如在添加设备之前,检查用户是否是管理员。”
def check_user_permission(username):
conn = mysql.connector.connect(
host="localhost",
user="root",
password="your_password",
database="it_assets"
)
cursor = conn.cursor()
query = "SELECT role FROM users WHERE username = %s"
values = (username,)
cursor.execute(query, values)
result = cursor.fetchone()
cursor.close()

conn.close()
if result and result[0] == 'admin':
return True
else:
return False
if check_user_permission("admin"):
add_asset("printer", "Printer 1", "SN789012", "Lab B", "available", None, None)
else:
print("Permission denied.")
小张:“这样就实现了基本的权限控制。”
小李:“看来我们的系统已经具备了一些基本功能,可以用于理工大学的IT资产管理。”
小张:“是的,未来我们还可以扩展更多功能,比如设备生命周期跟踪、自动提醒维护、生成报表等。”
小李:“听起来很有前景,希望我们能把这个项目完善起来,为学校提供更好的IT资产管理方案。”
小张:“没错,我们一起努力!”
