pip install flask-paginate
导入
from flask_paginate import Pagination, get_page_parameter
Pagination
: 类函数get_page_parameter
: 获取当前翻页的参数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注意: 如果使用的是Boostrap3
的CDN
, 那么就要设置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)
直接在想要放置分页条的地方使用 ↓↓↓↓
{{ pagination.links }}