Peewee – atomic交易
Peewee的数据库类有一个 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')