当您编写flask+sqlalchemy应用程序并进行db查询+异常处理时,如下所示:
def add_user(user: User) -> bool: # was the user added?
errors = []
try:
db.session.add(user)
db.session.commit()
except Exception: # e.g. Integrity error
return False
它可以稍后显示 PendingRollbackError
. 我在几个项目中使用的解决方案如下:
@app.teardown_request
def teardown_request(exception):
if exception:
db.session.rollback()
db.session.remove()
这种解决方案的缺点是什么?如果没有,我想知道为什么默认情况下不这样做。
暂无答案!
目前还没有任何答案,快来回答吧!