zoukankan      html  css  js  c++  java
  • peewee 事物 回滚

    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)  # 注册手机号/openid
        password = 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是利用关闭自动提交和手动回滚来保证事物的原子性;

  • 相关阅读:
    【NOIP2003提高组】加分二叉树
    【luogu1220】关路灯
    【luogu2583】地铁间谍
    Hello, World!
    python中的画笔控制函数
    python中库引用与import
    python中RGB色彩
    turtle角度坐标体系
    turtle空间坐标系
    python中turtle库的使用
  • 原文地址:https://www.cnblogs.com/aaron-agu/p/7645723.html
Copyright © 2011-2022 走看看