分頁器元件

2022-09-07 06:30:11 字數 2294 閱讀 6163

這是乙個完善的python後端分頁器**、能解決使用者百分之八十的web應用分頁實現

class

pagination

(object):

def__init__

(self,current_page,all_count,per_page_num=

2,pager_count=11)

:"""

封裝分頁相關資料

:param current_page: 當前頁

:param all_count: 資料庫中的資料總條數

:param per_page_num: 每頁顯示的資料條數

:param pager_count: 最多顯示的頁碼個數

用法:queryset = model.objects.all()

page_obj = pagination(current_page,all_count)

page_data = queryset[page_obj.start:page_obj.end]

獲取資料用page_data而不再使用原始的queryset

獲取前端分頁樣式用page_obj.page_html

"""try:

current_page =

int(current_page)

except exception as e:

current_page =

1if current_page <1:

current_page =

1 self.current_page = current_page

self.all_count = all_count

self.per_page_num = per_page_num

# 總頁碼

all_pager, tmp =

divmod

(all_count, per_page_num)

if tmp:

all_pager +=

1 self.all_pager = all_pager

self.pager_count = pager_count

self.pager_count_half =

int(

(pager_count -1)

/2) @property

defstart

(self)

:return

(self.current_page -1)

* self.per_page_num

@property

defend

(self)

:return self.current_page * self.per_page_num

defpage_html

(self)

:# 如果總頁碼 < 11個:

if self.all_pager <= self.pager_count:

pager_start =

1 pager_end = self.all_pager +

1# 總頁碼 > 11

else

:# 當前頁如果<=頁面上最多顯示11/2個頁碼

if self.current_page <= self.pager_count_half:

pager_start =

1 pager_end = self.pager_count +

1# 當前頁大於5

else

:# 頁碼翻到最後

if(self.current_page + self.pager_count_half)

> self.all_pager:

pager_end = self.all_pager +

1 pager_start = self.all_pager - self.pager_count +

1else

: pager_start = self.current_page - self.pager_count_half

pager_end = self.current_page + self.pager_count_half +

1 page_html_list =

# 新增前面的n**和ul標籤

''' '

''')return

''.join(page_html_list)

分頁器元件

在頁面顯示分頁資料,需要用到django分頁器元件 from django.core.paginator import paginator paginator物件 paginator paginator user list,10 per page 每頁顯示條目數量 count 資料總個數 num p...

Django元件 分頁器

批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all paginator paginator book list,10 print count pa...

Django元件 分頁器

批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all paginator paginator book list,10 print count pa...