Python ORM(Object Relational Mapping) with SQLite3
目录
- 介绍
- 安装SQLite3
- 创建数据库连接
- 创建数据表
- 定义模型类
- 增删改查操作
- 总结
1. 介绍
在开发过程中,我们经常需要与数据库进行交互,用于存储和检索数据。Python提供了许多不同的方法来处理数据库操作,其中一种常见的方法是使用ORM(Object Relational Mapping)库。ORM是将数据库表映射到面向对象的类的技术,它把数据库操作封装成对象的操作,使得开发者可以用面向对象的方式进行数据库操作,而不必直接操作SQL语句。
在本篇文章中,我们将介绍如何使用Python的ORM库与SQLite3数据库进行交互,完成对象的增删改查操作。
2. 安装SQLite3
首先,我们需要安装SQLite3数据库。在大多数情况下,SQLite3默认已经安装在Python中。如果没有安装,可以通过以下命令进行安装:
$ pip install sqlite3
3. 创建数据库连接
在使用SQLite3之前,我们需要创建一个数据库连接。SQLite3使用文件来存储数据库,因此我们需要指定一个数据库文件路径。
import sqlite3
# 创建数据库连接
connection = sqlite3.connect('database.db')
4. 创建数据表
在使用ORM进行数据库操作之前,我们需要先创建数据库表。通过执行SQL语句来创建表格。
# 创建游标对象
cursor = connection.cursor()
# 执行创建表格的SQL语句
create_table_sql = '''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL
);
'''
cursor.execute(create_table_sql)
# 提交事务
connection.commit()
5. 定义模型类
在使用ORM进行数据库操作之前,我们需要定义一个模型类,该类代表了数据库中的一张表。模型类的属性映射到表的字段,模型类的方法代表了表的操作。
class User:
def __init__(self, id, name, age):
self.id = id
self.name = name
self.age = age
def save(self):
# 获取游标对象
cursor = connection.cursor()
# 执行插入数据的SQL语句
insert_sql = '''
INSERT INTO users (name, age) VALUES (?, ?)
'''
cursor.execute(insert_sql, (self.name, self.age))
# 提交事务
connection.commit()
@staticmethod
def get_all():
# 获取游标对象
cursor = connection.cursor()
# 执行查询数据的SQL语句
select_all_sql = '''
SELECT * FROM users
'''
cursor.execute(select_all_sql)
# 获取所有结果
result = cursor.fetchall()
# 将结果转换为User对象列表
users = []
for row in result:
user = User(row[0], row[1], row[2])
users.append(user)
return users
6. 增删改查操作
现在我们可以使用定义好的模型类来进行增删改查操作了。
创建用户
# 创建一个新的User对象
user = User(name='Alice', age=25)
# 保存到数据库中
user.save()
查询所有用户
# 获取所有用户
users = User.get_all()
# 打印所有用户信息
for user in users:
print(f'ID: {user.id}, Name: {user.name}, Age: {user.age}')
7. 总结
在本篇文章中,我们介绍了如何使用Python的ORM库与SQLite3数据库进行交互。首先,我们安装了SQLite3,并创建了数据库连接。然后,通过执行SQL语句创建了数据表。接着,我们定义了一个模型类来代表数据表,并实现了增删改查操作。最后,我们展示了如何使用模型类进行数据库操作。
使用ORM可以使得数据库操作更加简洁和易读,同时也提高了代码的可维护性。希望本文对于刚入行的小白能够有所帮助。