運用Paginator實現前端頁面分頁,測試

2021-09-26 04:47:07 字數 2206 閱讀 9885

需求:將100條數目以及資訊分頁顯示,實現每頁顯示5條

建立分頁顯示的檢視函式

# 引入模組 views.py

from django.core.paginator import paginator, emptypage

def pag_test(request):

book_obj_list = models.book.objects.all()

paginator = paginator(book_obj_list, 5) # 每頁顯示五條資料

# try不產生新的作用域

try:

# 1從前端獲取頁碼

current_num = int(request.get.get('page',1)) # 預設第一頁,以便第一次訪問未獲取頁碼用

# 2根據頁碼獲取具體的page物件,前端可遍歷獲取內容

page_obj = paginator.page(current_num)

except emptypage:

# 當頁碼不符合try時,即超出範圍後,預設第一頁

page_obj = paginator.page(1)

current_num = 1

# 開頭幾個判斷及處理(報錯)

start = current_num - 3

if start < 1:

start = 0

end = 5

# 末尾幾個判斷及處理(少顯示)

elif start > paginator.num_page - 5:

start = paginator.num_page - 5

end = paginator.num_page

# 一般情況

else:

end = current_num + 2

# 3獲取頁面

page_range = paginator.page_range[start:end]

print(page_range)

return reder(request, 'test.html', locals())

完善html頁面建立連線

head引入

獲取資料

個人根據實際美化修改

僅供參考使用,個人學習筆記,望給點學習建議

優化版本2.0

paginator = paginator(blog_obj_list, settings.each_page_blogs_number)

# 獲取url的頁面引數(get請求)

page_num = request.get.get('page', 1)

page_of_blogs = paginator.get_page(page_num)

# 獲取當前頁碼

currentr_page_num = page_of_blogs.number

# 獲取當前頁碼前後各2頁的頁碼範圍

""""""

page_range = list(range(max(currentr_page_num - 2, 1), currentr_page_num)) + \

list(range(currentr_page_num, min(currentr_page_num + 2, paginator.num_pages) + 1))

# 加上省略頁碼標記

if page_range[0] - 1 >= 2:

page_range.insert(0, '...')

if paginator.num_pages - page_range[-1] >= 2:

# 加上首頁和尾頁

django使用 Paginator 實現分頁功能

在 django 中使用 paginator 可以很方便的實現分頁功能,下面就通過乙個具體的例子來講講如何使用 paginator。from django.core.paginator import paginator from django.core.paginator import emptyp...

常用前端演算法以及運用

1 判斷乙個字串是否屬於回文。function checkpalindrom str 2 二維陣列中的查詢function finditem arr,item 3 陣列去重a。let uniqueint function arr let data for let i 0 i4 統計陣列中項,找出最多...

教你如何運用python golang實現迴圈鍊錶

這篇文章主要介紹了python golang如何實現迴圈鍊錶,幫助大家更好的理解和學習迴圈鍊錶的實現方法,感興趣的朋友可以了解下 迴圈鍊錶就是將單鏈表的末尾指向其頭部,形成乙個環。迴圈鍊錶的增刪操作和單鏈表的增刪操作區別不大。只是增加時,需要考慮空鍊錶增加第乙個節點的特殊情況 刪除時需考慮刪除節點是...