1,配置路由,在模板層建立表模型2,在檢視層圍標新增資料
def index(request):
# 先造成100本書,放到列表中
ll=for i in range(100):
# 批量插入,兩個引數,第乙個是物件列表,第二個是一次插入的資料量,不填,預設一次全插入
models.book.objects.bulk_create(ll)
# 查詢所有圖書
book_list = models.book.objects.all()
# 分頁器--類,例項化產生乙個物件
# 兩個引數:object_list:物件列表, per_page:每頁顯示的條數
paginator = paginator(book_list, 10)
# 物件內的屬性
# 資料總條數100條
print(paginator.count)
# # 總頁數 10頁
print(paginator.num_pages)
# # 頁碼數的列表
print(paginator.page_range)
# # 取到第 x 頁 ,返回乙個page物件
current_page=paginator.page(5)
# 當前頁碼內所有的資料
print(current_page.object_list)
print(current_page.has_next())
print(current_page.has_previous())
print(current_page.next_page_number())
print(current_page.previous_page_number())
return render(request, 'index.html', locals())
2,捕獲異常,以及頁碼太多,需要隱藏def index(request):
book_list = models.book.objects.all()
paginator = paginator(book_list, 3)
# 如果頁碼數多,讓它顯示前5,後5,中間是當前在的頁碼
try:
current_page_num = int(request.get.get('page'))
current_page = paginator.page(current_page_num)
print(current_page.object_list)
# 總頁碼數,大於11的時候
if paginator.num_pages > 11:
# 當前頁碼數-5大於1的時候,page_range應該是?
if current_page_num - 5 < 1:
page_range = range(1, 12)
elif current_page_num + 5 > paginator.num_pages:
# 當前頁碼數+5大於總頁碼數,總頁碼數往前推11個
page_range = range(paginator.num_pages - 10, paginator.num_pages + 1)
else:
page_range = range(current_page_num - 5, current_page_num + 6)
else:
# 小於11,有多少頁,就顯示多少頁
page_range = paginator.page_range
except exception as e:
# 如果頁碼的長度超過了原本頁碼的數目,需要捕獲異常,然後跳轉到第一頁
current_page_num = 1
current_page = paginator.page(current_page_num)
return render(request, 'index_next.html', locals())
3,在前端顯示頁面
書名**
}}
Django元件之 分頁器
django自帶分頁器 paginator 用起來非常方便。怕自己寫的出bug,可以使用現成的 批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all...
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...