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
これに対処するには、 try, except ブロックを使用する必要がありますか? または、成功していないトランザクションに対処するためのより良い方法はありますか? トランザクションに関する 1 つの追加クエリ - オブジェクトをセッションに追加し続け、実行しない限り、session.commit
それはすべて 1 つのトランザクションの一部ですか?
ありがとう