django自带的分页功能
生活随笔
收集整理的這篇文章主要介紹了
django自带的分页功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
django自帶的分頁功能
django中自帶的分頁功能有缺陷,但是也是一種思路,所以在下做一個整理,方便以后使用,還有服務各位小伙伴.
-
django視圖部分的代碼.(注釋才是重點)
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPageclass Usersinfo(View):def get(self, request):result = UserInfo.objects.all()# 獲取當前的頁碼:current_page = request.GET.get('page')paginator = Paginator(result, 10)# 當前在前端顯示的頁碼try:posts = paginator.page(current_page)# 含有屬性:# per_page:每頁顯示條數# count數據總數# num_pages:總頁數# page_range:總頁數索引范圍# page:page對象# 如果輸入的頁面不是整數,就返回到第一頁except PageNotAnInteger as e:posts = paginator.page(1)#如果輸入的頁碼數負數,則顯示到最后一頁except EmptyPage as e:posts= paginator.page(paginator.num_pages)# has_next 是否有下一頁# next_page_number 下一頁頁碼# has_previous 是否有上一頁# previous_page_number 上一頁頁碼# object_list 分頁之后的數據列表# number 當前頁# paginator paginator對象return render(request, 'user.html', {'posts': posts})
-
url配置部分的代碼:
urlpatterns = [path('student/',views.Usersinfo.as_view())
]
前端部分的代碼:
<body>
{% for row in posts.object_list %}<li>{{ row.name }}-----{{ row.age }}</li>
{% endfor %}
<div><span>#如果有下一頁,點擊下一頁時就會翻頁{% if posts.has_previous %}<a href="?page={{ posts.previous_page_number }}">上一頁</a>{% endif %}</span><span>Page {{ posts.number }} of {{ posts.paginator.num_pages }}.</span><span>{% if posts.has_next %}<a href="?page={{ posts.next_page_number }}">下一頁</a>{% endif %}</span>
</div>
</body>
希望可以幫到各位!!!
總結
以上是生活随笔為你收集整理的django自带的分页功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django正反向查询
- 下一篇: Mysql创建数据库用户