咸鱼笔记—分页
新手刚接触python,跟着教程学的,仅供参考。欢迎各路大神指点。
学习版本: Django 1.8. Python 3.5
分页
例子:查询出所有省级地区的信息,显示在页面上。
AeroInfo.objects.filter(aParent__isnull = True)
1)查询出所有省级地区的信息。
2)按每页显示10条信息进行分页,默认显示第一页的信息,下面并显示出页码。
3)点击i页链接的时候,就显示第i页的省级地区信息。
from django.core.paginator import Paginator
paginator = Paginator(areas, 10) #按每页10条数据进行分页
Paginator类对象的属性:
属性名 | 说明 |
---|---|
num_pages | 返回分页之后的总页数 |
page_range | 返回分页后页码的列表 |
Paginator类对象的方法:
方法名 | 说明 |
---|---|
page(self, number) | 返回第number页的Page类实例对象 |
Page类对象的属性:
属性名 | 说明 |
---|---|
number | 返回当前页的页码 |
object_list | 返回包含当前页的数据的查询集 |
paginator | 返回对应的Paginator类对象 |
Page类对象的方法:
属性名 | 说明 |
---|---|
has_previous | 判断当前页是否有前一页 |
has_next | 判断当前页是否有下一页 |
previous_page_number | 返回前一页的页码 |
next_page_number | 返回下一页的页码 |
使用:
<ul>
{% for area in page %}
<li>{{ area.atitle }}</li>
{% endfor %}
</ul>
{% if page.has_previous %}
<a href="/show_area{{ page.previous_page_number}}"><上一页</a>
{% endif %}
{% for pindex in page.paginator.page_range %}
{% if pindex == page.number %}
{{ pindex}}
{% else %}
<a href="/show_area{{ pindex }}">{{ pindex }}</a>
{%endif%}
{% endfor %}
{% if page.has_next %}
<a href="/show_area{{ page.next_page_number}}">>下一页</a>
{% endif %}
效果如下