peewee 事物 回滾
阿新 • • 發佈:2017-10-10
create reat utf-8 ext def mod one color password
peewee 事物 回滾
#!/usr/bin/env python # coding=utf-8 from peewee import * db = MySQLDatabase(host=‘123.57.229.66‘, user=‘root‘, passwd=‘password‘, database=‘czj‘, charset=‘utf8‘) class tb_users(Model): id = PrimaryKeyField() # 主鍵 mobile = CharField(unique=True, max_length=64, null=False) # 註冊手機號/openidpassword = CharField(max_length=32) # 密碼 truename = CharField(max_length=32) # 真實姓名/nickname class Meta: database = db # 一 def one(): try: with db.atomic(): tb_users.create(mobile=‘120‘, password=‘120‘, truename=‘120‘) raise ‘haha‘ print‘Success‘ except IntegrityError: print ‘Failure: %s is already in use.‘ % username # 二 @db.atomic() def create_user(): tb_users.create(mobile=‘120‘, password=‘120‘, truename=‘120‘) raise ‘haha‘ def two(): create_user() # 三 def three(): db.set_autocommit(False) db.begin()try: tb_users.create(mobile=‘120‘, password=‘120‘, truename=‘120‘) raise ‘haha‘ except: db.rollback() raise else: try: db.commit() except: db.rollback() raise finally: db.set_autocommit(True) # 四 def four(): db.set_autocommit(False) db.begin() tb_users.create(mobile=‘120‘, password=‘120‘, truename=‘120‘) db.rollback() db.commit() db.set_autocommit(True)
實例1,2是使用 peewee封裝的db.atomic()原子性,3,4是利用關閉自動提交和手動回滾來保證事物的原子性;
peewee 事物 回滾