Django中的分頁

2021-09-09 04:27:53 字數 1980 閱讀 2303

直接看**吧,還算比較簡單:

先確認資料量有多少

根據頁面顯示資料的多少來分割資料,得到頁面的開始資料和結束資料

根據開始和截止資料去切片資料,並且得到總共的頁碼數

根據一頁顯示多少頁碼和當前頁碼數,得到開始和截止的頁碼

內容為字串拼湊的html標籤,並拼接到一起

匯入mark_safe模組,將字串轉化為頁碼物件

html頁面內容:

id名稱

}}

}

views.py內容:

def page(request):

# for i in range(200):

# name = 'cc'+str(i)

# models.girl.objects.create(name=name)

current_page = request.get.get('p', 1)

current_page = int(current_page)

start = (current_page - 1) * 10

end = current_page * 10

data = models.girl.objects.all()[start:end]

total_item = models.girl.objects.all().count()

a, b = divmod(total_item, 10)

if b == 0:

pass

else:

a += 1

str_page = custompage('?p=',current_page,a)

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

def custompage(baseurl,current_page,total_page):

#每頁顯示11頁碼

#perpage = 11

begin = 0

end = 0

if total_page <= 11:

begin = 0

end = total_page

else:

if current_page > 5:

begin = current_page - 5

end = current_page + 5

if end > total_page:

end = total_page

else:

begin = 0

end = 11

page_list =

#編輯首頁項

if current_page <= 1:

first = "首頁"

else:

first = "首頁"%(baseurl,1)

if current_page <= 1:

else:

#編輯中間頁面項

for i in range(begin+1,end+1):

if i == current_page:

temp = "%d"%(baseurl,i,i)

else:

temp = "%d"%(baseurl,i,i)

if current_page >= total_page:

else:

#編輯末頁選項

if current_page >= total_page:

last = "末頁"

else:

last = "末頁"%(baseurl,total_page)

#拼接字串

result = ' '.join(page_list)

#轉換為html

from django.utils.safestring import mark_safe

return mark_safe(result)

Django中的分頁

直接看 吧,還算比較簡單 先確認資料量有多少 根據頁面顯示資料的多少來分割資料,得到頁面的開始資料和結束資料 根據開始和截止資料去切片資料,並且得到總共的頁碼數 根據一頁顯示多少頁碼和當前頁碼數,得到開始和截止的頁碼 內容為字串拼湊的html標籤,並拼接到一起 匯入mark safe模組,將字串轉化...

Django中的分頁

django中分頁需要匯入分頁的工具,存在於django.core中,所以導包需要輸入 from django.core paginator import paginatorpaginator分別有三條屬性 count 記錄資料的總條數 num pages 記錄總頁數 page range 頁碼範圍...

Django中的分頁

直接看 吧,還算比較簡單 先確認資料量有多少 根據頁面顯示資料的多少來分割資料,得到頁面的開始資料和結束資料 根據開始和截止資料去切片資料,並且得到總共的頁碼數 根據一頁顯示多少頁碼和當前頁碼數,得到開始和截止的頁碼 內容為字串拼湊的html標籤,並拼接到一起 匯入mark safe模組,將字串轉化...