1、使用paginate对象进行分页:
flask_sqlalchemy
,对于继承自flask_sqlalchemy.Model
的类,都有一个paginate(page=None, per_page=None, error_out=True, max_per_page=None)
方法来获得一个flask_sqlalchemy.Pagination
对象。
paginate(page=None, per_page=None, error_out=True, max_per_page=None)
参数介绍:
page 页 数
per_page 每一页有几条数据
error_out 是否抛出异常
max_per_page 当指定了max_per_page
时,per_page
会受到这个值的限制
使用例子
# 获取页数,如果没有默认获取第一页
p = request.args.get("p", 1)
p = int(p)
try:
paginate =User.query.paginate(p, per_page=2, error_out=False)
# 获取分页数据
collections = paginate.items
# 获取当前页
current_page = paginate.page
# 获取总页数
total_page = paginate.pages
except Exception as e:
current_app.logger.error(e)
for news in collections:
news_list.append(news.to_dict())
data = {"total_page": total_page, "current_page": current_page, "collections": news_list}
return render_template('/user.html', data=data)
其他方法: