自动分页
flask自带paginate分页
paginate属性
- 当前页面(属性)
page
- 当前页面中的记录(属性)
items
- 上一页页码(属性)
prev_num
- 下一页页码(属性)
next_num
- 如果有上页返回True(属性)
has_prev
- 如果有下页返回True(属性)
has_next
- 查询得到总页数(属性)
pages
- 每一页显示记录的数量(属性)
per_page
- 查询返回的记录总数(属性)
total
@blue.route('/goodslist///')
def goodslist(num,per):
paginate = Goods.query.paginate(num,per)
return render_template('goodslist.html', paginate=paginate)
paginate中的方法
prev() 上一页的分页对象Pagination
next() 下一页的分页对象Pagination
iter_pages(left_edge=2,left_current=2,right_current=5,right_edge=2)
iter_pages 用来获得针对当前页的应显示的分页页码列表。
假设当前共有100页,当前页为50页,按照默认的参数设置调用iter_pages获得的列表为:
[1,2,None,48,49,50,51,52,53,54,55,None,99,100]
渲染模板
{% macro my_paginate(pagination, url) %}
{%if pagination.has_prev%}
上一页{%else%}
上一页{%endif%}
{%for page in pagination.iter_pages(1,1,3,1)%}
{%if page%}
{{page}}{%else%}
…{%endif%}
{%endfor%}
{%if pagination.has_next%}
下一页{%else%}
下一页{%endif%}
{% endmacro %}
宏的使用
{% extends '/home/layout/base.html' %}
{% import '/home/layout/page.html' as pg %}
{% block content %}
欢迎访问博客
在这里可以看到前端技术,后端程序,网站内容管理系统等文章,还有我的程序人生!
【今日推荐】从下载看我们该如何做事
一次我下载几部电影,发现如果同时下载多部要等上几个小时,然后我把最想看的做个先后排序,去设置同时只能下载一部,结果是不到一杯茶功夫我就能看到最想看的电影。 这就像我们一段时间内想干成很多事情,是同时干还是有选择有顺序的干,结果很不一样。同时...
最新发布
{% for article in paginate.items %}
{{article.title}}
{{ article.add_time }}
共120人围观
可以用strtotime()把日期($date)转成时间戳,再用date()按需要验证的格式转成一个日期,来跟$date比较是否相同来验证这个日期的格式是否是正确的。所以要验证日期格式 ...
{% endfor %}
{{ pg.my_paginate(paginate, 'home.blog_list')}}
{% endblock %}
手动
@blue.route('/goodslist///')
def goodslist(num,per):
# 第num页
# 每页显示per行
goods = Goods.query.offset((num-1) * per).limit(per)
return render_template('goodslist.html', goods=goods