分頁器的使用詳情

2022-09-08 07:03:18 字數 2170 閱讀 9511

分頁器**如下》

class pagination(object):

definit(self, current_page, all_count, per_page_num=10, pager_count=11):

"""封裝分頁相關資料

:param current_page: 當前頁

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

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

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

"""try:

current_page = int(current_page)

except exception as e:

current_page = 1

if 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

def start(self):

return (self.current_page - 1) * self.per_page_num

@property

def end(self):

return self.current_page * self.per_page_num

def page_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 + 1

else:

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)

使用方法:

1.先建立乙個utils資料夾

2.建立乙個mypage的py檔案

3.匯入模組from utils.mypage import pagination,找到檢視函式要分頁的文章輸入**

page_obj = pagination(current_page=request.get.get('page', 1), all_count=article_list.count(), per_page_num=2)

page_queryset = article_list[page_obj.start:page_obj.end]

4.在html中輸入},然後迴圈的物件為page_queryset

web開發中分頁的用法詳情

1.匯入分頁paginator模組 from django.core.paginator import paginator2.在檢視中寫入 page count 1 設定每頁顯示資料條數 獲取當前頁 p 預設頁為1 current page int request.get.get p 1 獲取資料 ...

jedis的使用詳情

redis安裝 ubuntu中安裝redis,ubuntu本身就自帶了redis的版本,如果想要別的版本的redis,也可以 相應版本然後安裝.我是在虛擬機器中安裝了ubuntu.在 ubuntu 系統安裝 redis 可以使用以下命令 sudo apt get update sudo apt ge...

Linux crontab使用詳情

基本格式 command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列表示日期1 31 第4列表示月份1 12 第5列標識號星期0 6 0表示星期天 第6列要執行的命令 crontab檔案的一些例子 上面的例子表示每晚的21 3...