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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Django分页的基本实现办法

發布時間:2025/6/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django分页的基本实现办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Django自帶一個分頁模塊Pagination,具體的參考官方文檔,我在這里簡單介紹一下具體的例子,模擬一個常用場景,列出部分的代碼出來。場景是這樣的:我們有一個blog表,其中有若干條記錄,我們要對這些記錄集進行分頁,每頁有10條記錄,把頁碼列舉出來,頁碼以a標簽的方式鏈接到本身頁碼的頁面(注意:不是采用Ajax的方式)。


第一步,取出blog表的全部記錄,定義每頁記錄數,定義當前頁 前邊頁碼范圍和后邊頁碼范圍。 views.py .... from django.core.paginator import Paginator,InvalidPage,EmptyPage,PageNotAnInteger blogs=Blog.objects.all() page_size=10 after_range_num = 5 before_range_num = 6??? try: page = int(request.GET.get("page",1)) if page < 1: page = 1 except ValueError: page = 1 ? paginator = Paginator(blogs,page_size) try: blogs = paginator.page(page) except(EmptyPage,InvalidPage,PageNotAnInteger): blogs = paginator.page(1) if page >= after_range_num: page_range = paginator.page_range[page-after_range_num:page+before_range_num] else: page_range = paginator.page_range[0:int(page)+before_range_num] template_var["page_objects"]=blogs template_var["page_range"]=page_range ....
第二步,在template頁面上顯示一頁數據 index.html .... {% for b in page_objects.object_list%} <div class="node_article"> <h3><a href='{{b.get_absolute_url}}'>{{b.title}}</a></h3> <p>{{b.content|safe|escape}}</p> </div> {%endfor%} .... page_objects對象不能看做blog的記錄集,page_objects.object_list才是你想要的,然后循環輸出記錄,把該頁的數據集呈現出來。
第三部,頁碼呈現。 index.html .... <p class="page_container"> {% if page_objects.has_previous %} <a href="?page={{ page_objects.previous_page_number }}" title="Pre">上一頁</a> {% endif %} {% for p in page_range %} {% ifequal p page_objects.number %} <span style="font-size:16px;" title="當前頁"><b>{{p}}</b></span> ? ? ? ? {% else %}<a href="?page={{p}}" title="第{{p}}頁">{{p}}</a>{% endifequal %} {% endfor %} ? ?? {% if page_objects.has_next %} <a href="?page={{ page_objects.next_page_number }}" title="Next">下一頁</a> {% endif %} ? <b> {%if page_objects.paginator.num_pages%}共 {{ page_objects.paginator.num_pages }} 頁{%endif%} </b> </p> ....

總結

以上是生活随笔為你收集整理的Django分页的基本实现办法的全部內容,希望文章能夠幫你解決所遇到的問題。

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