django之分頁器元件

2021-09-01 11:37:06 字數 2181 閱讀 9782

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...