官方手册说使用自动提交不是一般用途: http://docs.sqlalchemy.org/en/rel_1_0/orm/session_transaction.html
但我在我的代码中得到了ORM对象(表值),在代码中我使用了这个模型的一些值,这意味着在每次使用模型(类)的成员之后我应该创建session.commit()?我认为在我的程序中启用自动提交很容易。
class DBInterface(object):
def __init__(self):
engine = create_engine("...", encoding='utf8', echo=False)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
self.session = Session()
def get_project_info(self, project):
query = self.session.query(Projects)
query = query.filter(Projects.name == project).all()
if len(query) > 1:
raise LookupError('...')
result = query[0]
self.session.commit()
return result
获取价值 x = get_project_info(...) //这里我们还没有关闭交易(交易中闲置)
print(x.foo)//现在我们打印成员的价值,现在我们有(交易中闲置) // self.session.commit()//我应该在每次访问后使用瘦吗?这太疯狂了
我该怎么办?