日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django内置分页扩展

發布時間:2025/4/5 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django内置分页扩展 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

url文件

urlpatterns = [path('admin/', admin.site.urls),path('index1.html/', views.index1), ]

?

?

views文件

from django.shortcuts import render from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger# Create your views here. USER_LIST = [] for i in range(1,999):temp = {"name":"root"+str(i),"age":i}USER_LIST.append(temp)def index(request):per_page_count = 10current_page=request.GET.get('p')current_page=int(current_page)start = (current_page - 1)*per_page_countend =current_page*per_page_countdata = USER_LIST[start:end]if current_page<=1:prve_pag = 1prve_pag = current_page -1next_pag = current_page +1return render(request,'index.html',{"users":data,"prve_page":prve_pag,"next_page":next_pag})class CustomPaginator(Paginator):def __init__(self,current_page,per_page_num,*args,**kwargs):super(CustomPaginator,self).__init__(*args,**kwargs)#當前頁self.current_page = int(current_page)#最多顯示數量self.per_page_num = int(per_page_num)def per_num_range(self):#如果總頁數小于最多顯示數量if self.num_pages<self.per_page_num:return range(1,self.num_pages+1)part=int(self.per_page_num/2)#當前頁小于part(頁碼從領開始)if self.current_page <part:return range(1,self.per_page_num+1)#當前頁+part大于總頁數(頁碼最后一位已經顯示出來了)if (self.current_page+part)>self.num_pages:return range(self.num_pages - self.per_pager_num + 1, self.num_pages + 1)return range(self.current_page - part, self.current_page + part + 1)def index1(request):# 全部數據:USER_LIST,=》得出共有多少條數據# per_page: 每頁顯示條目數量# count: 數據總個數# num_pages:總頁數# page_range:總頁數的索引范圍,如: (1,10),(1,200)# page: page對象(是否具有下一頁;是否有上一頁;)current_page=request.GET.get('p')paginator = CustomPaginator(current_page,7,USER_LIST,10)try:posts=paginator.page(current_page)# has_next 是否有下一頁# next_page_number 下一頁頁碼# has_previous 是否有上一頁# previous_page_number 上一頁頁碼# object_list 分頁之后的數據列表,已經切片好的數據# number 當前頁# paginator paginator對象except PageNotAnInteger:posts = paginator.page(1)except EmptyPage:posts=paginator.page((paginator.num_pages))return render(request,"index1.html",{"posts":posts})

?

?

html文件

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><ul>{% for row in posts.object_list %}<li>{{ row.name }}--{{ row.age }}</li>{% endfor %} </ul>{% include 'include/pager.html' %} </body> </html>

?將分頁代碼放在include,這樣分頁功能就可以重用了

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body>{% if posts.has_previous %}<a href="/index1.html?p={{ posts.previous_page_number }}">上一頁</a>{% endif %}{% for i in posts.paginator.per_num_range %}{% if i == posts.number %}<a style="font-size: 30px;" href="/index1.html?p={{ i }}">{{ i }}</a>{% else %}<a href="/index1.html?p={{ i }}">{{ i }}</a>{% endif %}{% endfor %}{% if posts.has_next%}<a href="/index1.html?p={{ posts.next_page_number }}">下一頁</a>{% endif %}<span>{{ posts.number }}/{{ posts.paginator.num_pages}}</span></body> </html>

?

轉載于:https://www.cnblogs.com/lhqlhq/p/9178891.html

總結

以上是生活随笔為你收集整理的Django内置分页扩展的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。