26.分页
论述
flask通过flask-sqlalchemy建立模型后,将数据库的数据查询出来传递到模板中,由于有时候数据很多,需要进行分页查询,自己动手写一个分页很麻烦。可以通过flask-sqlalchemy自带的分页功能或者flask-pagination、flask-pagninate等插件进行分页。
创建数据库
create database pagination charset=utf8;
配置数据库
定义模型
创建数据
通过python shell进行交互创建数据
如果出现如下错误
则应该这样写
接下来进行创建数据
查看数据从第10行开始的10条数据

分页操作
flask-sqlalchemy的分页功能
通过flask-sqlalchemy自带的分页功能进行分页
定义视图函数
pagination对象常用方法
has_next
是否还有下一页
has_prev
是否还有上一页
items
返回当前页的所有内容
next(error_out=False)
返回下一页的Pagination对象
prev(error_out=False)
返回上一页的Pagination对象
page
当前页的页码(从1开始)
pages
总页数
per_page
每页显示的数量
prev_num
上一页页码数
next_num
下一页页码数
query
返回创建的Pagination对象的查询对象
total
查询返回的记录总数
iter_pages(left_edge=2, left_current=2, right_current=5, right_edge=2)
迭代分页中的页码,四个参数,分别控制了省略号左右两侧各显示多少页码,在模板中可以这样渲染
定义模板
index.html

可以将分页的部分抽离出来放在macro模板中,这样其他页面需要分页的时候,就能直接调用时候了,不用在写一次了。
_macro.html
index.html

通过flask-pagination进行分页
安装
导入模块
get_page_parameter()这个默认值为page, 也就是分页编号, 表示当前是第几页
定义视图函数
Pagination(bs_version=3, page=page, total=total, outer_window=0, inner_window=2)中需要添加outer_window=0, inner_window=2这样能够渲染按钮。
pagination对象常用方法
Pagination(page=,total=,bs_version=,search=,record_name=,outer_window=,inner_window=)
page= 当前是第几页; total= 数据总量; bs_version= 这个就是 bootstrap 的版本号了, 默认值是2 ;search= 是否是搜索, pagination.info 格式化时文案会不一样 ;record_name= 展示文案 pagination.info 中的值;设置outer_window,inner_window能够渲染按钮
links
一组可点击的分页页码的展示
info
分页数据总量的展示
更改CSS样式
可以根据需求调整
定义模板

最后更新于
这有帮助吗?
