flask分页

    科技2022-07-14  107

    flask分页使用paginate(), 返回一个分页对象,参数如下

    paginate(page=当前页, per_page=每页多少条, max_per_page=每页最大多少条)

    具体使用

    1、后端 从数据库查询数据,在后面加上paginate函数,得到分页对象,返回前端渲染

    pagination = Article.query.order_by().paginate(page=p, per_page=2, max_per_page=20) return render_template('index.html', page=page)

    pagination具体的属性 pagination.items # 当前页的每条记录对象(list) pagination.page # 当前页码 pagination.prev_num # 前一页页码 pagination.next_num # 后一页页码 pagination.has_next # 是否有下一页(true, false) pagination.has_prev # 是否有上一页 pagination.pages # 总页数 pagination.total # 数据库的总的记录数

    2、前端渲染

    {% for article in page.items %} {# 遍历分页对象列表 #} 。。。。。。 {% endfor %} {# 分页开始 #} {% if page.has_prev %} <a href="{{ url_for('app.index') }}?page={{ page.prev_num }}">上一页</a> {% endif %} {% for page_num in range(1, page.pages + 1) %} {# 使用range函数 #} <a href="{{ url_for('app.index') }}?page={{ page_num }}">{{ page_num }}</a> {% endfor %} {% if page.has_next %} <a href="{{ url_for('app.index') }}?page={{ page.next_num }}">下一页</a> {% endif %} <span>共{{ page.pages }}页</span> {# 分页结束 #}

    效果如下

    Processed: 0.015, SQL: 8