✨智能专业同学必看底层开发干货!
做图像识别、文本分类 AI 项目时,本地训练样本、日志杂乱难管理?
今天结合课堂全套知识点,用面向对象封装 + SQLite 轻量数据库搭建一套可直接落地的 AI 样本管理工具,代码完整可运行,竞赛、毕业设计拿来就能用!
很多同学做 AI 项目只会写模型推理,忽略本地数据持久化:
纯文件存储读写慢、无法快速筛选同标签样本;
MySQL 需要搭建服务,笔记本离线实训不方便;
代码零散杂乱,增删数据逻辑重复,后期维护难。
Python 内置模块,无需额外安装,单文件数据库,开箱即用;
轻量无独立服务器,适配笔记本、嵌入式智能设备离线开发;
支持标准 SQL 语法,主键、非空、唯一约束,规范管理训练数据。
封装数据库底层逻辑,隐藏连接、游标、关闭等重复操作;
代码高复用,新增查询、修改功能只需要扩展类方法;
模块化结构,符合大型 AI 项目、科创作品开发规范。
💡思政小科普:SQLite 这类轻量嵌入式数据库大量应用国产智能终端、边缘 AI 设备,掌握底层存储开发,是打造自主可控智能系统的基础能力。
贴合智能专业实训、竞赛真实场景,实现完整数据 CRUD 功能:
自动创建样本数据表,自带主键、唯一、非空约束;
单条 / 批量导入训练图片路径、标注标签、采集时间;
按标签筛选样本、修改标注、删除无效数据;
自动管理数据库连接、事务回滚,杜绝数据丢失;
全部逻辑封装为工具类,导入 AI 项目直接调用。
import sqlite3
# AI数据库操作工具类(面向对象封装核心)
classAIDataBase:
# 类属性:全局数据库文件名
DB_NAME = "ai_sample.db"
# 构造特殊方法:实例化自动建表
def__init__(self):
self.create_table()
# 私有封装方法:隐藏数据库连接逻辑,外部不可调用
def__get_conn(self):
conn = sqlite3.connect(AIDataBase.DB_NAME)
conn.row_factory = sqlite3.Row
return conn
# 实例方法:创建AI样本数据表(建表+字段约束)
defcreate_table(self):
conn = self.__get_conn()
cursor = conn.cursor()
create_sql = '''
CREATE TABLE IF NOT EXISTS ai_sample (
id INTEGER PRIMARY KEY AUTOINCREMENT,
img_path TEXT NOT NULL UNIQUE,
label TEXT NOT NULL,
create_time TEXT NOT NULL
)
'''
cursor.execute(create_sql)
conn.commit()
cursor.close()
conn.close()
# 新增单条样本(INSERT增操作)
defadd_sample(self, img_path, label, create_time):
conn = self.__get_conn()
cursor = conn.cursor()
insert_sql = "INSERT INTO ai_sample(img_path, label, create_time) VALUES (?, ?, ?)"
try:
cursor.execute(insert_sql, (img_path, label, create_time))
conn.commit()
print(" 样本新增成功")
except Exception as e:
conn.rollback()
print(f" 新增失败:{e}")
cursor.close()
conn.close()
# 批量导入样本(executemany批量操作)
defbatch_add_sample(self, data_list):
conn = self.__get_conn()
cursor = conn.cursor()
insert_sql = "INSERT INTO ai_sample(img_path, label, create_time) VALUES (?, ?, ?)"
try:
cursor.executemany(insert_sql, data_list)
conn.commit()
print(f" 批量导入{cursor.rowcount}条训练样本")
except Exception as e:
conn.rollback()
print(f" 批量导入失败:{e}")
cursor.close()
conn.close()
# 按标签查询样本(SELECT条件查询)
defquery_by_label(self, target_label):
conn = self.__get_conn()
cursor = conn.cursor()
query_sql = "SELECT * FROM ai_sample WHERE label = ?"
cursor.execute(query_sql, (target_label,))
result = cursor.fetchall()
cursor.close()
conn.close()
return result
# 修改样本标签(UPDATE改操作)
defupdate_label(self, img_path, new_label):
conn = self.__get_conn()
cursor = conn.cursor()
update_sql = "UPDATE ai_sample SET label = ? WHERE img_path = ?"
cursor.execute(update_sql, (new_label, img_path))
conn.commit()
cursor.close()
conn.close()
# 删除无效样本(DELETE删操作)
defdel_sample(self, img_path):
conn = self.__get_conn()
cursor = conn.cursor()
del_sql = "DELETE FROM ai_sample WHERE img_path = ?"
cursor.execute(del_sql, (img_path,))
conn.commit()
cursor.close()
conn.close()
# 类方法:查看数据库文件名称
@classmethod
defshow_db_name(cls):
print(f" 当前数据库文件:{cls.DB_NAME}")
# 主程序调用演示
if __name__ == "__main__":
# 调用类方法
AIDataBase.show_db_name()
# 实例化数据库对象,自动创建数据表
db = AIDataBase()
# 单条添加训练样本
db.add_sample("train/cat_001.jpg", "猫", "2026-08-06")
db.add_sample("train/dog_001.jpg", "狗", "2026-08-06")
# 批量导入多条样本
batch_data = [
("train/cat_002.jpg", "猫", "2026-08-06"),
("train/dog_002.jpg", "狗", "2026-08-06"),
("train/bird_001.jpg", "鸟", "2026-08-06")
]
db.batch_add_sample(batch_data)
# 查询所有猫类样本
cat_samples = db.query_by_label("猫")
print("n===== 猫类训练样本 =====")
for item in cat_samples:
print(f"图片路径:{item['img_path']},标注标签:{item['label']}")
# 修改样本标签、删除无效数据
db.update_label("train/bird_001.jpg", "鸟类")
db.del_sample("train/dog_002.jpg")
类与实例:AIDataBase为模板类,db = AIDataBase()创建操作对象;
类属性 / 类方法:DB_NAME全局常量、@classmethod查看数据库名;
特殊构造方法**__init__**:创建对象自动生成数据表,简化初始化;
封装特性:__get_conn()私有方法,隐藏数据库连接底层逻辑,避免外部误操作;
实例方法:所有增删改查功能封装为实例方法,逻辑清晰易扩展。
5 大数据类型、完整字段约束:PRIMARY KEY主键自增、NOT NULL非空、UNIQUE路径唯一;
Python 操作数据库标准 6 步流程:连接→创建游标→执行 SQL→事务提交→关闭游标→关闭连接;
Cursor 全套方法:execute单条执行、executemany批量、fetchall全量读取;
完整 CRUD 语句:建表 CREATE、新增 INSERT、查询 SELECT、修改 UPDATE、删除 DELETE;
事务安全机制:正常提交 commit,异常自动回滚 rollback,规避数据丢失;
?占位符防 SQL 注入,符合工业开发安全规范。
这套工具不是单纯课堂习题,是可落地的科创项目组件:
图像识别竞赛:管理数据集图片路径、分类标签,快速筛选同类样本用于模型训练;
毕业设计系统:拓展训练日志表,记录模型损失、准确率,完整存储实验数据;
嵌入式 AI 项目:SQLite 轻量化特性适配边缘设备离线存储,无需搭建数据库服务。
新增方法:按时间区间筛选训练样本;
拓展子类:使用继承,新建ModelLogDB管理模型训练日志;
增加清空全表、统计各类样本数量功能。
工匠精神:代码规范、强制释放数据库资源、事务异常回滚,养成严谨开发习惯,杜绝数据丢失、内存泄漏;
数据伦理:通过唯一、非空约束规范 AI 训练数据,保护标注劳动成果,树立数据安全意识;
信创发展:轻量 SQLite 广泛适配国产智能硬件,学好底层存储开发,夯实自主可控 AI 技术根基。

#标签 #Python #人工智能 #Python 面向对象 #SQLite #AI 毕设 #计算机专业实训 #科创竞赛