Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为python flask中的项目列表分页_Python_Mongodb_Flask_Pagination_Pymongo - Fatal编程技术网

为python flask中的项目列表分页

为python flask中的项目列表分页,python,mongodb,flask,pagination,pymongo,Python,Mongodb,Flask,Pagination,Pymongo,我通过以下代码获得python中的项目列表: from flask_paginate import Pagination @app.route('/retrieve_data') def retrieve(): PER_PAGE=5 connection = MongoClient() db=connection.rheoML fs = gridfs.GridFS(db) search = False q = request.args.get('q

我通过以下代码获得python中的项目列表:

from flask_paginate import Pagination
@app.route('/retrieve_data')
def retrieve():
    PER_PAGE=5
    connection = MongoClient()
    db=connection.rheoML
    fs = gridfs.GridFS(db)
    search = False
    q = request.args.get('q')
    if q:
        search = True
    try:
        page = int(request.args.get('page', 2))
    except ValueError:
        page = 1
    List=fs.list()
    pagination = Pagination(page=page,per_page=PER_PAGE, total=len(List), search=search, record_name='List')
    return   render_template("retrieveFile.html",List=List,fs=fs,form="submitIt",pagination=pagination,)
我现在正在学习教程 我还在retrieveFile.html中执行以下操作以适应分页:

<form id="submitIt" name="submitIt" action="/GetFile" method="Post" onsubmit="return validate(this)">
{{ pagination.info }}
<table>
<tr>
    <th>Select</th><th>Filename</th><th>Operator</th>
</tr>
{% for file in List %}
<tr>
<td>
<input type="checkbox" name="FileName" value={{file.strip('u').strip("'")}}><br>
</td>
<td>
<name="FileName1" id="file" value={{file.strip('u').strip("'")}}>{{file.strip('u').strip("'")}}<br>
</td>
<td>
{{fs.get_last_version(file).Operator}}<br>
</td>
</tr>
{% endfor %}
</table>
{{ pagination.links }}
<input type="submit" value="Download">
</form>

{{pagination.info}
选择FileNameOperator
{列表%中文件的%s}

{{file.strip('u').strip('“”}}
{{fs.get_last_version(file.Operator}}}
{%endfor%} {{pagination.links}
我将此添加到我的样式标记中

<style>
.pagination-page-info {
    padding: .6em;
    padding-left: 0;
    width: 40em;
    margin: .5em;
    margin-left: 0;
    font-size: 12px;
}
.pagination-page-info b {
    color: black;
    background: #6aa6ed;
    padding-left: 2px;
    padding: .1em .25em;
    font-size: 150%;
}
</style>

.分页页面信息{
填充:.6em;
左侧填充:0;
宽度:40em;
边缘:.5em;
左边距:0;
字体大小:12px;
}
.分页页面信息b{
颜色:黑色;
背景:#6aa6ed;
左侧填充:2px;
填充物:1em.25em;
字体大小:150%;
}
问题是,当显示页面时,页码很好,但所有项目都显示在一个页面中。请帮帮我,我还是个分页新手,还在努力解决问题。

整理好了吗 只需要编辑

try:
    page = int(request.args.get('page', 1))
except ValueError:
    page = 1

List=fs.list()
i=(page-1)*PER_PAGE
List1=List[i:i+5]
pagination = Pagination(page=page,per_page=PER_PAGE, total=len(List), search=search, record_name='List')
return render_template("retrieveFile.html",List=List1,fs=fs,form="submitIt",pagination=pagination,)

这里的回答非常晚,但希望这能澄清:

除了捕获页面和每页值外,还需要偏移量来帮助正确显示每页上的结果。实际上,有一个方便的方法可以设置这三个参数,您可以使用flask\u paginate import get\u page\u args中的
导入它们。下面是完整的view.py代码:

from flask_paginate import Pagination, get_page_args

@search.route('/retrieve_data')
def retrieve():
    # get_page_arg defaults to page 1, per_page of 10
    page, per_page, offset = get_page_args()

    # After the main query, you need to apply the per_page limit and offset
    fs = gridfs.GridFS(db)
    fs_for_render = fs.limit(per_page).offset(offset)

    #you can also add css_framework='bootstrap3' to Pagination for easy styling
    pagination = Pagination(page=page, per_page=per_page, offset=offset,
                           total=fs.count(), record_name='List')

    return render_template('retrieveFile.html', fs=fs_for_render, pagination=pagination, 
                          form="submitIt")

现在的问题是我得到了Horizontal中的链接这一行极大地帮助了我fs_for_render=fs.limit(per_page).offset(offset)。你是互联网上的英雄。