我正在使用 Flask 和 flask-SQLAlchemy 扩展来制作一个 webapp,并且我unique=True
在模型声明中添加了类似的字段。
class Coupon(db.Model):
username = db.Column(db.String(80), primary_key=True)
value = db.Column(db.String(80), unique=True)
is_valid = db.Column(db.Boolean)
def __init__(self, value, username):
self.value = value
self.username = username
self.is_valid = True
验证失败后恢复的最佳(pythonic)方法是什么。例如 -
c1 = Coupon("same_value", "foo")
db.session.add(c1)
c2 = Coupon("same_value", "bar")
db.session.add(c2)
db.session.commit() #gives an IntegrityError
我应该尝试一下,除了块来处理这个吗?或者有没有更好的方法来处理没有成功的交易。关于事务的一个附加查询 - 只要继续将对象添加到会话而不执行,session.commit
这是否都是一个事务的一部分?
谢谢