一.轻松实现Django分页
(1)安装 djangorestframework库
pip install djangorestframework
安装csrf第三方库之后,我们就可以使用自带分页器Paginator来进行内容的分页
(2)后台python代码
如果取不到分页对象时,设置页码为1
page = int(request.GET.get('page',1))
取分页对象,orders为需要分页的对象,一般为models中表的对象
pg = Paginator(orders, ORDER_NUMBER)
pg = Paginator(orders, 3)
ORDER_NUMBER在setting.py中定义:一页显示的内容个数,也可直接写数字.
最后将orders对象进行分页
orders = pg.page(page)
(3)在前端html文件中实现分页
使用orders对象调用分页的方法(has_previous)判断是否当前页是否有上一页
?page={{orders.previous_page_number }} 跳转之后将上一页的页码传参给页面
{% if orders.has_previous %}
<a href="{% url 'order:user_order' %}?page={{ orders.previous_page_number }}">上一页></a>
{% endif%}
取得当前orders的所有分页页码
{% for i in orders.paginator.page_range %}
<a href="{% url 'order:user_order' %}?page={{ i }}">{{ i }}</a>
{% endfor %}
判断是否有下一页(参考判断是否有上一页的方法)
{% if orders.has_next %}
<a href="{% url 'order:user_order' %}?page={{ orders.next_page_number }}">下一页></a>
{% endif %}