我有一个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
传入,然后以某种方式指定查询信息。
有人可以推荐一个解决方案吗?
答案 0 :(得分:6)
尝试使用paginator中的flask-mongoengine您可以像这样使用它:
paginator = Pagination(Post.objects, 1, 10)
print paginator.items