0
我试图创建一个过滤器管理器来结束过滤呼叫在SQLAlchemy的应用程序。但是,过滤管理器没有返回任何值。而且,它甚至不会运行SQL语句。我的会话如何声明有问题吗?SQLAlchemy的过滤管理器不返回任何值
class FilterManager():
def __init__(self):
self.page = 1
self.pageLength = 5
Logger.info('Filter: Filter Manager Created')
def SimpleFilter(self):
limit = self.pageLength
offset = ((self.page - 1) * self.pageLength) + 1
session = Session()
return session.query(KeyAction).order_by(KeyAction.id)[limit:offset]
session.close()
然后,我添加了关键作用,其成功:
session = Session()
ka = KeyAction(name='Key Action 1', description = 'Test', custom = False)
session.add(ka)
session.commit()
session.close()
我的单元测试都无法在同一个断言:
results = filter.SimpleFilter()
self.assertEquals(len(results), 1)
话说结果的长度为0,不是1
我也试过在宣布全球范围内单个会话,但有同样的问题。任何帮助将非常感激!
亚历
------------------编辑------------------
基于下面的第一个答案,我做了以下更新:
def SimpleFilter(self):
limit = ((self.page - 1) * self.pageLength)
offset = self.pageLength + ((self.page - 1) * self.pageLength)
session = Session()
results = session.query(KeyAction).order_by(KeyAction.id)[limit:offset]
session.close()
return results
现在返回基于什么承诺之前时间的脚本运行的结果(0结果返回的第一时间,3返回第二个时间,之后每次返回5个)
快速提示,在会话工厂声明之后,我确实将会话声明移动到了正确的位置,如示例here所示。
为什么我不能看在这个环节中写入DB数据?
我试过这样做,并得到了上述错误。另外,我在终端输出中看不到任何查询。我不认为它曾经查询过数据库。 –
请始终添加完整的错误追溯! –
我的不好,我疯了一个错字。 ','→':' –