三步實(shí)現(xiàn)Django Paginator分頁的方法
Django提供了一個(gè)新的類來幫助管理分頁數(shù)據(jù),這個(gè)類存放在django/core/paginator.py.它可以接收列表、元組或其它可迭代的對象。本文將分三步介紹Django Paginator 分頁的實(shí)現(xiàn)步驟
一、通過模型創(chuàng)建Subject
Django models
from django.db import models class Subject(models.Model): """學(xué)科""” no = models.AutoField(primary_key=True, verbose_name="編號") 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é)科"
二、通過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模塊對數(shù)據(jù)分頁,一頁5條數(shù)據(jù) paginator = Paginator(subjects, 5) #使用request.GET.get()函數(shù)獲取uri中的page參數(shù)的數(shù)值 page = request.GET.get('page') try: #通過獲取上面的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ù)渲染到前端模版上
前端分頁代碼塊:
<div class="pull-right" style="margin-right: 480px;margin-top: 0px”> <!— 分頁功能--> <nav> <ul class="pagination”> <!— 分頁功能前端的方向箭頭代碼--> {% 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 %} <!— 分頁功能顯示頁碼的中間部分代碼--> {% 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 %} <!— 分頁功能末端的方向箭頭代碼--> {% 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>
四、最終顯示效果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
講解Python的Scrapy爬蟲框架使用代理進(jìn)行采集的方法
這篇文章主要介紹了講解Python的Scrapy爬蟲框架使用代理進(jìn)行采集的方法,并介紹了隨機(jī)使用預(yù)先設(shè)好的user-agent來進(jìn)行爬取的用法,需要的朋友可以參考下2016-02-02Python實(shí)現(xiàn)微信高效自動(dòng)化操作
在如今數(shù)字化時(shí)代,人們對于效率的追求越來越強(qiáng)烈,而PyAutoGUI和Pyperclip作為Python中的兩個(gè)強(qiáng)大庫,為我們實(shí)現(xiàn)自動(dòng)化操作提供了便利,下面我們就來看看如何利用這兩個(gè)庫實(shí)現(xiàn)微信自動(dòng)化操作吧2023-10-10利用Python中的pandas庫對cdn日志進(jìn)行分析詳解
這篇文章主要介紹了利用Python中的pandas庫進(jìn)行cdn日志分析的相關(guān)資料,文中分享了pandas對cdn日志分析的完整示例代碼,然后詳細(xì)介紹了關(guān)于pandas庫的相關(guān)內(nèi)容,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03使用python如何實(shí)現(xiàn)泛型函數(shù)
這篇文章主要介紹了使用python如何實(shí)現(xiàn)泛型函數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09