Flask-SQLAlchemy session.rollback不起作用

时间:2018-02-19 13:24:15

标签: python flask sqlalchemy flask-sqlalchemy

我正在使用FLASK开发API,我正在使用FLASK-SQALCHEMY。

好吧,当api抛出一些异常时,我会尝试回滚会话。

我的代码

def create_user():
    user = User()
    db.session.add(user)
    db.session.flush()
    return user

try:
    new_user = create_user()
    print('x' + 2) # force error
    db.session.commit()
except Exception as error:
    db.session.rollback()
    raise

我的要求(Python 3.6.3和MySQL 5.7):

SQLAlchemy==1.2.2
astroid==1.6.0
flask==0.12.2
flask-login==0.4.1
Flask-Migrate==2.1.1
flask-script==2.0.6
flask-sqlalchemy==2.3.2
flask-validator==1.2.3
isort==4.2.15
pygelf==0.3.3
pylint==1.8.1
PyMySQL==0.7.11
pytest==3.3.1
Werkzeug==0.13

1 个答案:

答案 0 :(得分:0)

来自docs

  

FLUSH语句导致隐式提交

删除db.session.flush(),它应该按预期工作。