我正在为我的模型添加分页功能。我可以使用mixin中的方法来做到这一点,我想我理解在这种情况下分页是什么,但我正在寻找添加查询,以便我可以在任何我想要的地方传递分页,而无需硬编码模型方法并且没有mixin例如:
Mymodel.query.filter(Mymodel.attr=='X').paginate(**args, **kwargs)
flask-sqlalchemy 这样做,但我没有使用它,尽管我已经尝试过它以尝试提取一些功能。
所以如果我有这样的方法:
def paginate(self, page, per_page=20):
items = self.limit(per_page).offset((page - 1) * per_page).all()
return Pagination(self, page, per_page, self.count(), items)
如何在 sqlalchemy 查询链中将其作为带有接口的东西插入和输出?我有点做并且不遵循它在flask-sqlalchemy中是如何完成的,但我想提取/学习如何做到这一点并在未来更好地控制查询,改进我对sqlalchemy的使用,所以我不完全知道我要去哪里,只是问一个问题,然后从那里开始。
长答案:继续阅读 sqlalchemy 文档和代码,直到我获得更深入的理解。我正在寻找扩展 orm.Query - 我已经完成了,但我不知道如何将它与我的项目联系起来,因为我不了解 sqlalchemy 的底层机制,但我认为我只需要将我的分页查询添加到我正在使用的声明性基础 Base 中,但一旦我重新开始工作就会看到。