Flask-paginate—实现分页
-
安装包
pip install flask-paginate
-
后端代码
from flask_paginate import Pagination, get_page_parameter from ..models import BannerModel, BoardModel, PostModel @bp.route("/") def index(): # limit(4) 值获取4个 banners = BannerModel.query.order_by(BannerModel.priority.desc()).limit(4) boards = BoardModel.query.all() # 获取当前页码 get_page_parameter()自动获取参数 type类型为int default默认页码为1 page = request.args.get(get_page_parameter(), type=int, default=1) # 开始位置 start = (page - 1)*config.PER_PAGE # 结束位置 end = start + config.PER_PAGE # 在page也中帖子的内容 slice切片 相当于[start, end] posts = PostModel.query.slice(start, end) # bs_version=3使用bootstrap第3个版本 page当前页码 total总条数 outer_window=0分页的页码左右只显示一个 inner_window=1中间的页面, 左右傍边只显示一个键 pagination = Pagination(bs_version=3, page=page, total=PostModel.query.count(), outer_window=0, inner_window=1) context = { "banners": banners, "boards": boards, "posts": posts, "pagination": pagination } return render_template("front/front_index.html", **context)
-
前端代码
<div style="text-align: center"> {{ pagination.links }} </div>