Django 資料分頁處理

2021-08-09 19:13:19 字數 1872 閱讀 3198

原文:

在檢視中的應用

from django.core.paginator import paginator, emptypage, pagenotaninteger

from django.shortcuts import render

def listing(request):

contact_list = contacts.objects.all()

paginator = paginator(contact_list, 25) # show 25 contacts per page

page = request.get.get('page')

try:

contacts = paginator.page(page)

except pagenotaninteger:

# if page is not an integer, deliver first page.

contacts = paginator.page(1)

except emptypage:

# if page is out of range (e.g. 9999), deliver last page of results.

contacts = paginator.page(paginator.num_pages)

return render(request, 'list.html', )

在template的html模板中的應用

}...

previous

page } of }.

next

基本語法例項

#!/usr/bin/env python

# _*_ coding:utf-8 _*_

import os

from django.core.paginator import paginator

objects = ['john','paul','george','ringo','lucy','meiry','checy','wind','flow','rain']

p = paginator(objects,3) # 3條資料為一頁,例項化分頁物件

print p.count # 10 物件總共10個元素

print p.num_pages # 4 物件可分4頁

print p.page_range # xrange(1, 5) 物件頁的可迭代範圍

page1 = p.page(1) # 取物件的第一分頁物件

print page1.object_list # 第一分頁物件的元素列表['john', 'paul', 'george']

print page1.number # 第一分頁物件的當前頁值 1

page2 = p.page(2) # 取物件的第二分頁物件

print page2.object_list # 第二分頁物件的元素列表 ['ringo', 'lucy', 'meiry']

print page2.number # 第二分頁物件的當前頁碼值 2

print page1.has_previous() # 第一分頁物件是否有前一頁 false

print page1.has_other_pages() # 第一分頁物件是否有其它頁 true

print page2.has_previous() # 第二分頁物件是否有前一頁 true

print page2.start_index() # 第二分頁物件的元素開始索引 4

print page2.end_index() # 第2分頁物件的元素結束索引 6

Django分頁器Paginator資料重複問題

上週新增了乙個新的爬蟲目標,前後端做好list頁,詳情頁,over 沒想到本週管理爬蟲資訊的小哥反映說,每頁都會出現一條重複的資料,這條重複的資料永遠佔據著每頁的最後一條 設想了幾個可能導致該問題的原因 使用html模板時誤加了一行 如posts.last之類 分頁器使用方法錯誤 經排查發現 htm...

Django處理下拉資料

解決辦法,用django的models處理,把資料都寫到資料庫中,後端把資料返回給前端,前端只需要讀取資料,寫到對應的下拉列表中即可 具體操作 後端 1 先建表,想清楚資料結構,再寫介面 2 寫乙個介面,將資料返回給前端 get請求 class searchenvjson apiview defge...

django 分頁功能

django 分頁功能 django自帶了paginator,功能有一定侷限,使用django pure pagination功能更為強大 github傳送門 1 使用pip源安裝 pip install django pure pagination pure pagination 3 在setti...