我正在使用烧瓶分页(仅供参考)在烧瓶(Python框架)中进行分页
我能够find
为以下查询实现分页:
from flask_paginate import Pagination
from flask_paginate import get_page_args
def starting_with_letter(letter):
page, per_page, offset = get_page_args()
collection_name=letter.lower()+'_collection'
words=db[collection_name]
data_db=words.find()
data=data_db.limit(per_page).skip(offset) '''Here I have achieved the limit and skip'''
pagination = Pagination(page=page, total=data.count(),per_page=per_page,offset=offset,record_name='words')
return render_template('startingwords.html',data=data,pagination=pagination)
但我不能在这里对聚合做同样的事情:
def test():
page, per_page, offset = get_page_args()
cursor_list=[] '''appending each cursor in iteration of for loop '''
collections=db.collection_names()
for collection in collections:
cursor_objects = db[collection].aggregate([
{
"$match": {
"$expr": {"$eq": [{"$strLenCP": "$word"}, 6]}
}
},
{"$skip": offset},
{"$limit": per_page}
])
for cursor in cursor_objects:
cursor_list.append(cursor)
pagination = Pagination(page=page, total=len(cursor_list),per_page=per_page,offset=offset,record_name='words')
return render_template('lettersearch.html',data=cursor_list,pagination=pagination)
结果显示为:
这里所有的39
结果都显示在单页上
击中page 2
它显示:
注意:默认情况下,flask-paginate 最初设置per_page
为 as10
和offset
as0
在参考了许多我尝试过的链接之后:
放置skip
及limit
以上match
任何方式都是错误的
还学到了limit
总是跟在后面skip
我坚持这一点,任何帮助表示赞赏