使用 SQLAlchemy 进行批量操作

2023-04-05 00:00:00 sqlalchemy 操作 批量

要使用 SQLAlchemy 进行批量操作,可以使用数据库会话(session)的 add_all() 方法来一次性添加多个对象到数据库中。以下是一个简单的例子:

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from my_models import User

engine = create_engine('sqlite:///my_database.sqlite')
Session = sessionmaker(bind=engine)
session = Session()

users = [
    User(username='john', password='doe'),
    User(username='jane', password='smith'),
    User(username='bob', password='ross')
]
session.add_all(users)
session.commit()

在这个例子中,我们定义了一个 SQLite 数据库引擎,并创建了一个会话。我们也定义了一个 User 类(在 my_models.py 文件中),它映射到数据库中的 users 表。

我们创建了一个包含三个 User 对象的列表,并使用 session 的 add_all() 方法一次性添加了它们。最后,我们使用 commit() 方法将这些对象保存到数据库中。

在实际的应用程序中,你可能需要在读取数据后进行批量操作,或者在循环中创建和添加多个对象。在这种情况下,你可以使用 Python 的列表推导式或生成器表达式来生成待添加的对象列表,然后将它们传递给 add_all() 方法。

users = [User(username='user{}'.format(i), password='password') for i in range(10)]
session.add_all(users)
session.commit()

在这个例子中,我们使用列表推导式生成了一个包含 10 个 User 对象的列表,并一次性将它们添加到数据库中。

相关文章