我正在尝试从上下文管理器返回SELECT查询的值。但是,没有返回任何响应。如何从上下文管理器/会话中返回选择查询的结果?
@contextmanager
def aperio_session_scope():
"""Provide a transactional scope around a series of operations."""
session = AperioSession()
try:
yield session
session.commit()
except:
session.rollback()
raise
finally:
session.close()
此外,查询类如下所示:
class AperioSlidesAfterDate(object):
def go(self, session):
session.query(Slide).join(Image).filter(Image.scandate > '2018-08-01 00:00:00', Slide.barcodeid.isnot(None))
我按如下方式运行查询:
with aperio_session_scope() as session:
slides = AperioSlidesAfterDate().go(session)
所有这三个摘要均来自不同的文件,并且我的导入设置正确。没有编译时或运行时异常。看来slides
的值始终是None
。我想念什么吗?我遵循了SQLAlchemy文档中的示例。
如果我做类似的事情:
with aperio_session_scope() as session:
slides = session.query(Slide).join(Image).filter(
Image.scandate > '2018-08-01 00:00:00', Slide.barcodeid.isnot(None))
我得到了结果,但是我想尝试使用,并按照文档中的预期将会话对象与go一起使用。这是范围问题吗?还是我只需要以某种方式访问返回值?
谢谢。
答案 0 :(得分:1)
您忘了return
的{{1}}查询结果:
go()