Peewee 简明教程
Peewee - Atomic Transactions
Peewee 的 database 类拥有 atomic() 方法,它创建了一个上下文管理器。它开启一个新事务。在上下文块内部,可以根据事务是否成功完成或遇到异常来提交或回滚事务。
with db.atomic() as transaction:
try:
User.create(name='Amar', age=20)
transaction.commit()
except DatabaseError:
transaction.rollback()
atomic() 也可作为装饰器使用。
@db.atomic()
def create_user(nm,n):
return User.create(name=nm, age=n)
create_user('Amar', 20)
多个原子事务块也可以嵌套。
with db.atomic() as txn1:
User.create('name'='Amar', age=20)
with db.atomic() as txn2:
User.get(name='Amar')