flask-paginate分页技术的使用

尹何平
2023-12-01

pagination的安装

pip install flask-paginate

使用

导入

from flask_paginate import Pagination, get_page_parameter
  • Pagination: 类函数
  • get_page_parameter: 获取当前翻页的参数
  1. 在视图函数定义方法
pagination = Pagination('参数')
page = request.args.get(get_page_parameter(), type=int, default=1)

Pagination.__init__(**kwargs)

(加粗的为常用的参数)

  • found=0: 当使用搜索是使用
  • page: 当前页, 使用实例对象中的page
  • per_page: 每页显示多少项, 可以使用数据表的切片slice操作来定义, per_page
  • page_parameter: 页面参数, 默认为page, http://localhost:5000/?page=2
  • prev_label: 上一页, 默认为<<, 可以定义prev_label='上一页'
  • next_label: 下一页, 默认为>>, 可以定义next_label='下一页'
  • total: 总共有多少页
  • bs_version=2: Bootstrap版本, 默认为版本2

注意: 如果使用的是Boostrap3CDN, 那么就要设置bs_version=3, 否则会无法正常显示

实例代码

# 获取当前为第几页
page = request.args.get(get_page_parameter(), type=int, default=1)
# 定义每页显示多少项
start = (page-1)*config.PER_PAGE
end = start + config.PER_PAGE
# 使用切片来显示每页显示多少项
posts = PostModel.query.slice(start, end)
pagination = Pagination(bs_version=3, page=page, total=PostModel.query.count())

context = {
    "posts": posts,
    "pagination": pagination,
    # ... others
}
return render_template('index.html', **context)

2. 在模板中使用方法

直接在想要放置分页条的地方使用 ↓↓↓↓

{{ pagination.links }}
 类似资料: