2
我有新创建的对象。我想知道如何检查当前会话是否有该对象?Flask sqlalchemy检查db.session中是否有对象并准备提交
事情是这样的:
user = User(...)
....
db.session.add(user)
...
if db.session.has_object(user):
<process further>
是这样的可能吗?
此外,我想为我的瓶子实例创建after_request,以便不必担心提交,它只允许我检查db.session是否已准备好提交或不提交。如果是,那么执行db.session.commit()。
事情是这样的:
@app.after_request
def after_request(response):
if db.session.is_ready():
db.session.commit()
谢谢@Doobeh。这有助于检查对象是否在会话中。但是,我仍然如何决定提交是否准备好?何时动态刷新? – srahul07 2014-10-31 07:30:48
如果您要求如何开启自动提交功能,那么当您设置会话时,这只是'autocommit = True'([docs here](http://docs.sqlalchemy.org/en/rel_0_8/orm /session.html#autocommit-mode)),或者如果你使用Flask-SQLAlchemy,它是'db = SQLAlchemy(session_options = {'autocommit':True})''。如果您要求自动提交请求级别,例如只在请求结束时提交,而不是在期间提交,只有在需要时才提交 - 我想你可以检查[会话状态](http://docs.sqlalchemy.org/en/rel_0_8/orm/session.html#会话属性)本身,并从中判断。 – Doobeh 2014-10-31 12:53:13
好的。谢谢你会检查! – srahul07 2014-11-03 10:48:54