2
我有一個瓶頸視圖,當成功提交POST請求中的對象時,我想用它來顯示成功。Flask + SQLAlchemy [確定提交成功]
在控制器中,我有
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', '[email protected]', 'test')
它拋出什麼異常? – Blender 2013-05-02 06:47:45
添加了發帖異常。 – user1431282 2013-05-02 07:06:00
爲什麼不在提交數據庫之前檢查電子郵件是否是唯一的? – Blender 2013-05-02 07:07:47