萬能分頁模板

views視圖

def student(request):

????# all_count 數(shù)據(jù)庫總個(gè)數(shù)

????????all_count = models.UserInfo.objects.all().count()

????????#每頁顯示數(shù)據(jù)數(shù)

????????page_info? = PageInfo(request.GET.get('page'),all_count,10,'student.html',11)? ?//'student.html? 配置url

? ??????user_list = models.UserInfo.objects.all()[page_info.start():page_info.end()]#傳入數(shù)據(jù)

????return render(request,'student.html',{'user_list':user_list,'page_info':page_info})


關(guān)鍵模板來了:

class PageInfo(object):

def __init__(self,current_page,all_count,per_page,base_url,show_page=11):

#current_page當(dāng)前頁

? ? ? ? self.current_page = current_page

try:

self.current_page =int (current_page)

except Exception as e:

self.current_page =1

? ? ? ? #per_page 每頁顯示總個(gè)數(shù)

? ? ? ? self.per_page = per_page

a,b=divmod(all_count,per_page)

if b:

a=a+1

? ? ? ? self.all_pager = a

self.show_page = show_page

self.base_url = base_url

def start(self):

return (self.current_page -1)*self.per_page

def end(self):

return self.current_page *self.per_page

def pager(self):

page_list=[]

harf =int((self.show_page-1)/2)

#如果數(shù)據(jù)總頁數(shù) < 11

? ? ? ? if self.all_pager

begin =1

? ? ? ? ? ? stop =self.all_pager+1

? ? ? ? ? ? # 如果數(shù)據(jù)總頁數(shù) > 11

? ? ? ? else:

#如果當(dāng)前頁<=5,永遠(yuǎn)顯示1-11頁

? ? ? ? ? ? if self.current_page <= harf:

begin =1

? ? ? ? ? ? ? ? stop =self.show_page+1

? ? ? ? ? ? ? ? # 否則當(dāng)前頁>5,永遠(yuǎn)顯示中間頁

? ? ? ? ? ? else:

# 如果當(dāng)前頁+5大于所有數(shù)據(jù)頁數(shù),永遠(yuǎn)顯示最后一頁

? ? ? ? ? ? ? ? if self.current_page + harf>self.all_pager:

begin =self.all_pager -self.show_page+1

? ? ? ? ? ? ? ? ? ? stop =self.all_pager +1

? ? ? ? ? ? ? ? else:

begin =self.current_page - harf

stop =self.current_page+harf+1

?if self.current_page <=1:

prev ="<li><a href='#'>上一頁</a></li>"

? else:

prev ="<li><a href='%s?page=%s'>上一頁</a></li>" %(self.base_url,self.current_page-1,)

page_list.append(prev)

? ? ? ? for iin range(begin,stop):

if i ==self.current_page:

temp ="<li class='active'><a href='/%s?page=%s'>%s</a></li>" %(self.base_url,i, i,)

else:

temp ="<li><a href='/%s?page=%s'>%s</a></li>" % (self.base_url, i, i,)

page_list.append(temp)

if self.current_page >=self.all_pager:

nex ="<li><a href='#'>下一頁</a></li>"

else:

nex ="<li><a href='%s?page=%s'>下一頁</a></li>" % (self.base_url,self.current_page +1,)

page_list.append(nex)

return ''.join(page_list)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • django框架雖然帶有自己的分頁功能,但是樣式不好看,為了做更好看的分頁,需要自定義一個(gè)分頁工具,話不多說擼起袖...
    Code人生閱讀 926評論 0 1
  • Overview The ccxt library is a collection of available cr...
    郭蟈兒蟈兒閱讀 4,014評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,553評論 19 139
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,854評論 0 10
  • 2015年前我還是一個(gè)95kg的胖子,70后的我每次在單位體檢時(shí)都會(huì)查出一大堆脂肪肝,高血脂癥等與肥胖有關(guān)問題……...
    schumipaul閱讀 560評論 1 1

友情鏈接更多精彩內(nèi)容