python 根据模型创建一个sqlite3的数据库类
时间: 2024-09-09 16:04:18 浏览: 78
在Python中,使用sqlite3库可以轻松地创建和管理SQLite数据库。以下是一个简单的Python类示例,展示了如何创建一个SQLite数据库类,该类可以根据提供的数据库模型(表结构)来创建表。
```python
import sqlite3
class SQLiteDB:
def __init__(self, db_name):
# 初始化数据库连接
self.conn = sqlite3.connect(db_name)
self.cursor = self.conn.cursor()
def create_table(self, model):
# 根据提供的模型创建表
# 模型是包含表名和字段列表的字典
table_name = model['table_name']
columns = ', '.join(model['columns'])
self.cursor.execute(f'CREATE TABLE IF NOT EXISTS {table_name} ({columns})')
self.conn.commit()
def insert_data(self, table_name, data):
# 插入数据到表中
columns = ', '.join(list(data.keys()))
placeholders = ', '.join(['?'] * len(data))
values = tuple(data.values())
self.cursor.execute(f'INSERT INTO {table_name} ({columns}) VALUES ({placeholders})', values)
self.conn.commit()
def query_data(self, query, params=None):
# 查询数据
self.cursor.execute(query, params)
return self.cursor.fetchall()
def close(self):
# 关闭数据库连接
self.conn.close()
# 使用示例
db = SQLiteDB('my_database.db')
# 定义一个表模型
user_model = {
'table_name': 'users',
'columns': ['id INTEGER PRIMARY KEY', 'name TEXT', 'age INTEGER']
}
# 创建表
db.create_table(user_model)
# 插入数据
db.insert_data('users', {'name': 'Alice', 'age': 30})
# 查询数据
data = db.query_data('SELECT * FROM users WHERE name = ?', ('Alice',))
# 关闭数据库连接
db.close()
print(data)
```
这个类包含了创建数据库连接、根据模型创建表、插入数据、查询数据和关闭数据库连接的基本方法。在使用时,可以通过实例化这个类并调用相应的方法来操作SQLite数据库。
阅读全文