使用 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 对象的列表,并一次性将它们添加到数据库中。
相关文章