django分頁使用方法

   當咱們從後臺數據庫讀取數據,出現太多的時候會很難看,這個時候就要用到分頁功能,django帶有的分頁模塊很是好用,這幾天在研究,今天跟你們分享一下直接啓動代碼:html

[root@mail oms]# ./manage.py shell      #啓動後臺
python

>>> from django.core.paginator import Paginator    導入模塊
>>> objects = ['xiaoluo','test','huihui','xiaoxiao']    #開始定義一個列表
>>> p = Paginator(objects,2)          #objects以2爲分割單位
>>> p.count                          #統計總共多少行
4
>>> p.num_pages                     #統計總共的頁數
2
>>> p.page_range                    #序號
[1, 2]
>>> page1 = p.page(1)               #第一頁序號
>>> page1
<Page 1 of 2>shell

>>> page1.object_list              #詳細信息
['xiaoluo', 'test']
>>> page1.has_next()              #是否有下一頁
True
>>> page1.has_previous()          #是否有上一頁
False數據庫

>>> page2= p.page(2)             #打印第二頁
>>> page2.object_list
['huihui', 'xiaoxiao']django

>>> page2.previous_page_number()   #上一頁的頁面號數
1ide

>>> page1.next_page_number()       #下一頁
2ui

>>> page1.start_index()          #這一頁開始的序號
1
>>> page1.end_index()  
2spa


實例:下面是一段後臺views的代碼:server

def server_asset_list(request):
        server_asse = ServerAsset.objects.all()
        paginator = Paginator(server_asse,10)
        try:
            page = int(request.GET.get('page','1'))
        except ValueError:
            page = 1
        try:
            server_asse = paginator.page(page)
        except (EmptyPage,InvalidPage):
            server_asse = paginator.page(paginator.num_pages)
        return render_to_response('server_asset_list.html',{'server_asse':server_asse})
頁面html模板:
 {%if server_asse.has_previous%}
 <a href="?page={{ server_asse.previous_page_number }}">上一頁</a>
 {%endif%}
    <span class="current">
 第{{ server_asse.number }}頁,共{{ server_asse.paginator.num_pages }}頁</span> 
 {%if server_asse.has_next %}
 <a href="?page={{ server_asse.next_page_number }}">下一頁</a>
 {%endif%}

頁面效果展現:

wKioL1UCVK6h2qqMAACsD8u6N6w253.jpg

相關文章
相關標籤/搜索