django框架之分頁器及forms元件等相關內容-72
阿新 • • 發佈:2020-12-12
1 專案資料量大了以後,比如涉及到分頁,一頁一頁的載入顯示
2 django中分頁器元件,把分頁常用的東西,封裝到一個類中
3 例項化得到一個物件,物件裡有屬性和方法
2 分頁器的簡單使用
#######1 Paginator物件的屬性和方法
book_list=models.Book.objects.all()
# 例項化得到物件
# 第一個引數:要分頁的資料,book_list
# 第二個引數:沒有條數
paginator=Paginator(book_list,10)
# Paginator物件的屬性和方法
print(paginator.per_page) # 每頁顯示的條數
print(paginator.count) # 總條數,總共要分頁多少條資料
print(paginator.num_pages) # 總頁碼數
print(paginator.page_range) # 頁碼的生成器 [1,2,3,4,5,6,7,8,9,10]
######3 Page物件的屬性和方法
# Page類 的物件
page=paginator.page(2) # 第一頁的物件
# 每一頁的物件,屬性和方法
print(page.has_next()) # 有沒有下一頁
print(page.next_page_number()) # 下一頁頁碼
print(page.has_previous()) # 是否有上一頁
print(page.previous_page_number()) # 上一頁頁面 (當前頁如果是第一頁,沒有上一頁)
print(page.object_list) # 當前頁的所有資料
print(page.number) # 當前頁的頁碼數
##### 4 表模型中預設以id排序
class Meta:
ordering=('id', ) # 預設以id排序
檢視
def index(request):
# 需要的第三個引數
page_num_int=int(request.GET.get('page',1))
book_list = models.Book.objects.all()
paginator = Paginator(book_list, 10)
# 需要的第一個引數:頁碼的生成器 [1,2,3,4,5,6,7,8,9,10]
page_range = paginator.page_range
# 需要的第二個引數,去到某一頁的page物件
page = paginator.page(page_num_int)
return render(request, 'index.html', {'page_range':page_range,'page':page,'page_num_int':page_num_int})
模板