需求:將100條數目以及資訊分頁顯示,實現每頁顯示5條
建立分頁顯示的檢視函式
完善html頁面建立連線# 引入模組 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())
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如何實現迴圈鍊錶,幫助大家更好的理解和學習迴圈鍊錶的實現方法,感興趣的朋友可以了解下 迴圈鍊錶就是將單鏈表的末尾指向其頭部,形成乙個環。迴圈鍊錶的增刪操作和單鏈表的增刪操作區別不大。只是增加時,需要考慮空鍊錶增加第乙個節點的特殊情況 刪除時需考慮刪除節點是...