使用Flask和Mongoengine进行高效分页

时间:2013-07-08 14:02:50

标签: pagination flask mongoengine

我有一个Flask应用程序,我想用它来显示MongoDB Collection中的分页数据表。但是,这个集合中可能有很多文档,所以我想懒得加载它们 - 只加载即将显示的文档。

我的问题是,在我的应用中的一个页面上,我想分页:

Stuff.objects()

但是在不同的页面上,我想分页:

Stuff.objects(__raw__=query)Stuff.objects(message__in=Message.objects(__raw__=query))

调用任何这些特定函数会自动将所有相关对象加载到内存中(正如我通过运行locals()所发现的那样),因此我需要使用以下命令对调用进行分页:

Stuff.objects().skip(number).limit(pagelength),或 Stuff.objects(__raw__=query).skip(number).limit(pagelength)

所以看起来我需要一个Paginator类,我可以简单地将Report传入,然后以某种方式指定查询信息。

有人可以推荐一个解决方案吗?

1 个答案:

答案 0 :(得分:6)

尝试使用paginator中的flask-mongoengine您可以像这样使用它:

paginator = Pagination(Post.objects, 1, 10)
print paginator.items