与Sqlalchemy查询对象接口以扩展自定义查询类型

2024-04-26 21:15:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的模型添加分页功能。我可以用mixin中的方法来实现这一点,我想我理解在这个上下文中分页是什么,但是我希望添加查询,这样我就可以在任何地方传递分页,而不必硬编码模型方法,也不需要mixin,例如:

Mymodel.query.filter(Mymodel.attr=='X').paginate(**args, **kwargs)

FlaskSqlAlchemy会这样做,但我没有使用它,尽管我已经仔细研究过它,试图提取一些功能。在

如果我有这样的方法:

^{pr2}$

如何在sqlalchemy查询链中插入这个接口?我有点了解也不了解flask sqlalchemy是如何做的,但我想提取/学习如何做到这一点,以及将来对查询的更多控制,改进我对sqlalchemy的使用,所以我不知道我将如何使用它,只是问个问题然后从那里开始。在

长话短说:继续阅读sqlalchemy文档和代码,直到我获得更多的理解。我想延长orm.查询--我已经做过了,但是我还不知道如何将它与我的项目联系起来,因为我不了解sqlalchemy的底层机制,但是我想我只需要将paginate查询添加到我正在使用的声明性基库中,但是一旦我重新开始处理它,就会看到了。在


Tags: 方法模型功能编码sqlalchemy地方argsfilter
1条回答
网友
1楼 · 发布于 2024-04-26 21:15:11

你读过这个吗?在

http://packages.python.org/Flask-SQLAlchemy/api.html?highlight=pagination#flask.ext.sqlalchemy.Pagination

它清楚地解释了,要使用flask内的sqlalchemy扩展进行分页,请执行以下操作:

class flask.ext.sqlalchemy.Pagination(query, page, per_page, total, items)¶

在您的具体情况下,您可以:

^{pr2}$

然后在模板中,可以使用此分页对象使用render_pagination()宏进行渲染

相关问题 更多 >