码迷,mamicode.com
首页 > 其他好文 > 详细

peewee 事物 回滚

时间:2017-10-10 16:54:56      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:自动   mob   else   env   open   利用   手机号   bin   ack   

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是利用关闭自动提交和手动回滚来保证事物的原子性;

 

peewee 事物 回滚

标签:自动   mob   else   env   open   利用   手机号   bin   ack   

原文地址:http://www.cnblogs.com/aaron-agu/p/7645723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!