三步實(shí)現(xiàn)Django Paginator分頁(yè)的方法
Django提供了一個(gè)新的類來(lái)幫助管理分頁(yè)數(shù)據(jù),這個(gè)類存放在django/core/paginator.py.它可以接收列表、元組或其它可迭代的對(duì)象。本文將分三步介紹Django Paginator 分頁(yè)的實(shí)現(xiàn)步驟
一、通過(guò)模型創(chuàng)建Subject
Django models
from django.db import models class Subject(models.Model): """學(xué)科""” no = models.AutoField(primary_key=True, verbose_name="編號(hào)") name = models.CharField(max_length=31, verbose_name="名稱") intro = models.CharField(max_length=511, verbose_name="介紹") def __str__(self): return self.name class Meta: db_table = 'tb_subject' verbose_name_plural = "學(xué)科"
二、通過(guò)view模塊,要呈現(xiàn)到前端的數(shù)據(jù)
Django view 的配置
from django.shortcuts import render from django.core.paginator import Paginator, InvalidPage, EmptyPage, PageNotAnInteger from vote.models import Subject def show_subject(request): """查詢學(xué)科""" #查詢Subject 表的所有數(shù)據(jù) subjects = Subject.objects.all().order_by("no”) #使用Paginator模塊對(duì)數(shù)據(jù)分頁(yè),一頁(yè)5條數(shù)據(jù) paginator = Paginator(subjects, 5) #使用request.GET.get()函數(shù)獲取uri中的page參數(shù)的數(shù)值 page = request.GET.get('page') try: #通過(guò)獲取上面的page參數(shù),查詢此page是否為整數(shù)并且是否可用 subject_obj = paginator.page(page) except PageNotAnInteger: subject_obj = paginator.page(1) except (EmptyPage, InvalidPage): subject_obj = paginator.page(paginator.num_pages) return render(request, "vote/subject.html", {'subject_list': subject_obj})
三、將view中的數(shù)據(jù)渲染到前端模版上
前端分頁(yè)代碼塊:
<div class="pull-right" style="margin-right: 480px;margin-top: 0px”> <!— 分頁(yè)功能--> <nav> <ul class="pagination”> <!— 分頁(yè)功能前端的方向箭頭代碼--> {% if subject_list.has_previous %} <li class="enabled"> <a href="?page={{ subject_list.previous_page_number }}" rel="external nofollow" aria-label="Previous"> <span aria-hidden="true">«</span> </a> </li> {% endif %} <!— 分頁(yè)功能顯示頁(yè)碼的中間部分代碼--> {% for page_num in subject_list.paginator.page_range %} {% if page_num == subject_list.number %} <li class="active"> <a href="#" rel="external nofollow" > {{ page_num }} <span class="sr-only">(current)</span> </a> </li> {% else %} <li> <a href="?page={{ page_num }}" rel="external nofollow" >{{ page_num }} <span class="sr-only">(current)</span> </a> </li> {% endif %} {% endfor %} <!— 分頁(yè)功能末端的方向箭頭代碼--> {% if subject_list.has_next %} <li class="enabled"> <a href="?page={{ subject_list.next_page_number }}" rel="external nofollow" aria-label="last"> <span aria-hidden="true">»</span> </a> </li> {% endif %} </ul> </nav> </div>
四、最終顯示效果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Django1.11自帶分頁(yè)器paginator的使用方法
- django的分頁(yè)器Paginator 從django中導(dǎo)入類
- Django的分頁(yè)器實(shí)例(paginator)
- Django使用paginator插件實(shí)現(xiàn)翻頁(yè)功能的實(shí)例
- Django原生sql也能使用Paginator分頁(yè)的示例代碼
- Django drf分頁(yè)器的使用詳解
- Django分頁(yè)器的用法詳解
- Django分頁(yè)器的用法你都了解嗎
- Django 自定義分頁(yè)器的實(shí)現(xiàn)代碼
- Django Paginator分頁(yè)器的使用示例
相關(guān)文章
講解Python的Scrapy爬蟲(chóng)框架使用代理進(jìn)行采集的方法
這篇文章主要介紹了講解Python的Scrapy爬蟲(chóng)框架使用代理進(jìn)行采集的方法,并介紹了隨機(jī)使用預(yù)先設(shè)好的user-agent來(lái)進(jìn)行爬取的用法,需要的朋友可以參考下2016-02-02Python實(shí)現(xiàn)微信高效自動(dòng)化操作
在如今數(shù)字化時(shí)代,人們對(duì)于效率的追求越來(lái)越強(qiáng)烈,而PyAutoGUI和Pyperclip作為Python中的兩個(gè)強(qiáng)大庫(kù),為我們實(shí)現(xiàn)自動(dòng)化操作提供了便利,下面我們就來(lái)看看如何利用這兩個(gè)庫(kù)實(shí)現(xiàn)微信自動(dòng)化操作吧2023-10-10利用Python中的pandas庫(kù)對(duì)cdn日志進(jìn)行分析詳解
這篇文章主要介紹了利用Python中的pandas庫(kù)進(jìn)行cdn日志分析的相關(guān)資料,文中分享了pandas對(duì)cdn日志分析的完整示例代碼,然后詳細(xì)介紹了關(guān)于pandas庫(kù)的相關(guān)內(nèi)容,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-03-03使用python如何實(shí)現(xiàn)泛型函數(shù)
這篇文章主要介紹了使用python如何實(shí)現(xiàn)泛型函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09python中幾種括號(hào)的使用()、[]、{}舉例說(shuō)明
這篇文章主要介紹了python中幾種括號(hào)的使用()、[]、{}舉例說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Python爬蟲(chóng)利用多線程爬取 LOL 高清壁紙
這篇文章主要介紹了Python爬蟲(chóng)利用多線程爬取 LOL 高清壁紙,通過(guò)網(wǎng)站爬取每一個(gè)英雄的所有皮膚圖片,全部下載下來(lái)并保存到本地,下文爬取過(guò)程感興趣的朋友可以參考一下2022-06-06