我有烧瓶申请,需要实施交易。 我试过这个。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
Session = sessionmaker()
engine = create_engine(SQLALCHEMY_DATABASE_URI, echo=True)
Base = declarative_base()
Session.configure(bind=engine)
db_session = Session()
try:
db_session.add(post)
db_session.commit()
except Exception as e:
db_session.rollback()
我可以在日志中看到回滚,但它不起作用并插入行但应该回滚。
2016-12-27 11:14:49,157 INFO sqlalchemy.engine.base.Engine ROLLBACK
然后我将其更改为
try:
db_session.add(post)
db_session.flush()
except Exception as e:
db_session.rollback()
db_session.commit()
这有效,但我不知道这是一个好习惯。