使用Flask和Mongoengine进行高效分页

Aus*_*n R 3 pagination mongoengine flask

我有一个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,然后以某种方式指定查询信息.

有谁能推荐一个解决方案?

Ros*_*oss 6

尝试使用分页程序烧瓶mongoengine 您可以使用它像这样:

paginator = Pagination(Post.objects, 1, 10)
print paginator.items
Run Code Online (Sandbox Code Playgroud)