Django 利用 Pagination 分頁

2022-07-12 07:33:07 字數 2497 閱讀 1975

一. paginator類的解釋

class

paginator(object):

def__init__(self, object_list, per_page, orphans=0,

allow_empty_first_page=true):

self.object_list =object_list

self.per_page =int(per_page)

self.orphans =int(orphans)

self.allow_empty_first_page =allow_empty_first_page

self._num_pages = self._count = none

1.根據其定義做出以下解釋,上述**沒有將其類屬性和方法貼出。

2.類方法:

3.類屬型:

二. page類的解釋

通常不用手動建立page物件,可以從paginator.page()來獲得他們。

class

page(collections.sequence):

def__init__

(self, object_list, number, paginator):

self.object_list =object_list

self.number =number

self.paginator = paginator

1.類方法

2.類屬型

三.非法頁面處理

這兩個異常都是inalidpage

的子類,所以可以通過簡單的except invalidpage

來處理它們。

四.使用paginator

官方示例:

views.py:

from django.core.paginator import

paginator, emptypage, pagenotaninteger

from django.shortcuts import

render

deflisting(request):

contact_list = contacts.objects.all() #

獲取所有contacts,假設在models.py中已定義了contacts模型

paginator = paginator(contact_list, 25) #

每頁25條

page = request.get.get('

page')

try:

contacts = paginator.page(page) #

contacts為page物件!

except

pagenotaninteger:

#if page is not an integer, deliver first page.

contacts = paginator.page(1)

except

emptypage:

#if page is out of range (e.g. 9999), deliver last page of results.

contacts =paginator.page(paginator.num_pages)

return render(request, '

list.html

', )

list.html:

}

...class="

pagination

">

class="

step-links

">

"?page=}

">previous

class="

current

">page } of }.

"?page=}

">next

final:  根據官方示例**結果如下,頁面共有3頁,首頁時只有next選項,中間頁時可選擇previous 或 next,尾頁時只有previous選項。

另:給出另一種list.html:

"

pagination

">

contacts 和 article_list 是同乙個意思,效果如下:

django之分頁演算法實現(Paginator)

匯入模組 from django.core.paginator import paginator 一 paginator的基本用法 from django.core.paginator import paginator objects john paul george ringo lucy meir...

利用pycharm建立django專案

pycharm是個很不錯的python開發工具,大大縮短了python專案的建立時間以及除錯時間 在使用python寫指令碼一段時間後,想嘗試使用django來編寫乙個python專案,現做以下記錄備忘 建立後執行專案,預設頁面為開啟後 出現上面的頁面,則正面專案建立成功 目錄結構 from dja...

利用django建立表結構

在專案資料夾下cmd執行命令 建立system模組 django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages django....