【发布时间】:2017-09-26 12:52:12
【问题描述】:
我正在尝试实现烧瓶分页以返回每页特定数量的结果。我关注了docs,它仍在显示所有记录。我还检查了github 的示例,但看不到我做错了什么。我在 python 中的定义:
def dashboard():
page_size = 1
files = File.query.order_by(File.title)
search = False
q = request.args.get('q')
if q:
search = True
page = int(request.args.get('page',1))
pagination = Pagination(page=page, total=files.count(), per_page=page_size, css_framework='bootstrap3', search=search)
return render_template('dashboard.html', files=files, pagination=pagination)
还有html模板:
{% extends "header.html" %}
{% block body %}
<table border=2 padding=10>
<tr padding="10">
<td>Username</td>
<td>Filename</td>
</tr>
{% for file in files %}
<tr padding=10>
<td padding=10> {{ file.username }} </td>
<td padding=10> {{ file.title }} </td>
<td><a href="{{ url_for('static', filename=file.file) }}">Download</a></td>
</tr>
{% endfor %}
</table>
{{ pagination.info }}
{{ pagination.links }}
{% endblock %}
结果:
如您所见,pagination.info 正确显示了记录数,但它仍然显示每条记录,尽管变量 per_page 设置为 1。
【问题讨论】:
-
你迭代文件而不是分页。
-
你混淆了 Flask-SQLAlchemy 分页和 Flask-Paginate(给定示例中使用了最后一个)
标签: python flask pagination flask-sqlalchemy