小明: 嘿,小李!听说你最近在学校搞了个资产管理系统?
小李: 是啊,我们学校设备数量多,管理起来特别麻烦。所以我写了一个简单的系统来帮忙。
小明: 那你觉得这个系统主要解决什么问题呢?
小李: 主要是解决了设备登记、查询、更新和统计的问题。以前都是纸质记录,现在全部电子化了。
小明: 听起来不错,那你是怎么设计的呢?
小李: 我用Python写了后端逻辑,用SQLite存储数据。首先定义了一个数据库结构。
import sqlite3
def create_table():
conn = sqlite3.connect('assets.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS assets (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
type TEXT NOT NULL,
location TEXT NOT NULL,
status TEXT NOT NULL
)
''')
conn.commit()
conn.close()
]]>
小明: 这样就完成了数据库的基本框架,接下来是怎么添加设备的?
def add_asset(name, asset_type, location, status):
conn = sqlite3.connect('assets.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO assets (name, type, location, status) VALUES (?, ?, ?, ?)',
(name, asset_type, location, status))
conn.commit()
conn.close()
]]>
小明: 那如果要查询某个设备的信息呢?
def query_assets(location=None):
conn = sqlite3.connect('assets.db')
cursor = conn.cursor()
if location:
cursor.execute('SELECT * FROM assets WHERE location = ?', (location,))
else:
cursor.execute('SELECT * FROM assets')
rows = cursor.fetchall()
conn.close()
return rows
]]>
小李: 对了,我还加了一个更新状态的功能。
def update_status(asset_id, new_status):
conn = sqlite3.connect('assets.db')
cursor = conn.cursor()
cursor.execute('UPDATE assets SET status = ? WHERE id = ?', (new_status, asset_id))
conn.commit()
conn.close()
]]>
小明: 真棒!看起来功能很完善。你觉得还有哪些可以改进的地方吗?
小李: 可以增加用户权限管理,或者更复杂的报表生成功能。