三步實(shí)現(xiàn)Django Paginator分頁(yè)的方法
Django提供了一個(gè)新的類來幫助管理分頁(yè)數(shù)據(jù),這個(gè)類存放在django/core/paginator.py.它可以接收列表、元組或其它可迭代的對(duì)象。本文將分三步介紹Django Paginator 分頁(yè)的實(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="編號(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é)科"
二、通過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:
#通過獲取上面的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)文章
用Python3通過PyCharm上傳代碼到Git服務(wù)器的詳細(xì)過程
上傳代碼到服務(wù)器,如果不知道的情況下還用傳統(tǒng)的方式上傳很麻煩,現(xiàn)在很多IDE都提供上傳代碼的功能,例如:VSCode,PyCharm等等,本文講解的是PyCharm,需要的朋友可以參考下2024-03-03
Pandas過濾dataframe中包含特定字符串的數(shù)據(jù)方法
今天小編就為大家分享一篇Pandas過濾dataframe中包含特定字符串的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
用Python編寫腳本使IE實(shí)現(xiàn)代理上網(wǎng)的教程
這篇文章主要介紹了用Python編寫腳本使IE實(shí)現(xiàn)代理上網(wǎng)的教程,“著名的”goagent代理也是基于同樣原理實(shí)現(xiàn),需要的朋友可以參考下2015-04-04
Python中NumPy的線性代數(shù)子模塊linalg詳解
這篇文章主要介紹了Python中NumPy的線性代數(shù)子模塊linalg詳解,NumPy 的線性代數(shù)子模塊linalg提供了 20 余個(gè)函數(shù),用于求解行列式、逆矩陣、特征值、特征向量,以及矩陣分解等,需要的朋友可以參考下2023-08-08

