POSTリクエストからのオブジェクトが正常にコミットされたときに成功を表示するために使用したいフラスコのビューがあります。
コントローラーには、
us = User(data_that_is_not_valid)
db_session.add(us)
db_session.commit()
現在、オブジェクトをコミットできない場合、db_commit() は例外をスローします。エラーをスローせずにオブジェクトがデータベースに追加されたかどうかを指定するために true または false を返す、より使いやすい方法はありますか?
編集:例外のコピーを追加
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.8.0-py2.7-linux-x86_64.egg/sqlalchemy/orm/scoping.py", line 149, in do
return getattr(self.registry(), name)(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.8.0-py2.7-linux-x86_64.egg/sqlalchemy/orm/session.py", line 719, in commit
self.transaction.commit()
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.8.0-py2.7-linux-x86_64.egg/sqlalchemy/orm/session.py", line 350, in commit
self._assert_active(prepared_ok=True)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.8.0-py2.7-linux-x86_64.egg/sqlalchemy/orm/session.py", line 192, in _assert_active
% self._rollback_exception
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (IntegrityError) column email is not unique u'INSERT INTO users (name, email, password) VALUES (?, ?, ?)' ('test', 'test@test.com', 'test')