分页:
在views中:
@blue.route("/")
def index():
#解析get请求参数
params = request.args
page = int(params.get("page", 1))
per_page = int(params.get("per_page", 15))
#创建一个当前页的分页对象
#paginate("当前页码","每页几条数据")
paginator = News.query.paginate(page, per_page, error_out=False)
return render_template("index.html", pagination=paginator)
在index.html中:
<div class=pagination>
#判断是否有前一页
{% if pagination.has_prev %}
#拼接字符串路径
<a href="{{ url_for('day04_1.index') }}?page={{ pagination.prev_num }}&per_page=15">上一页</a>
{% else %}
#返回第一页
<a href="{{ url_for('day04_1.index') }}?page=1&per_page=15">上一页</a>
{% endif %}
#遍历每一页
{% for page in pagination.iter_pages() %}
#判断是不是当前页
{% if page != pagination.page %}
<a href="{{ url_for('day04_1.index') }}?page={{ page }}&per_page=15">{{ page }}</a>
{% else %}
#加粗
<strong>{{ page }}</strong>
{% endif %}
{% endfor %}
#判断是否有下一页
{% if pagination.has_next %}
<a href="{{ url_for('day04_1.index') }}?page={{ pagination.next_num }}&per_page=15">上一页</a>
{% else %}
#返回下一页
<a href="{{ url_for('day04_1.index') }}?page={{ pagination.pages }}&per_page=15">下一页</a>
{% endif %}
</div>
属性:
pagination是指当前页的分页对象
pagination.iter_pages()——返回生成器(generator);感觉等于range(页码)
pagination.items——返回当前页的数据;是一个list
pagination.page——返回当前页页码;是一个int
pagination.pages——返回总页数;是一个int
pagination.has_prev——判断是否有前一页;是一个bool
pagination.has_next——判断是否有后一页;是一个bool
pagination.prev_num——返回前一页页码;是一个int
pagination.next_num——返回后一页页码;是一个int