Django常用-分頁

分頁

Django提供了數(shù)據(jù)分頁的類硕淑,這些類被定義在django/core/paginator.py中绿聘。 類Paginator用于對列進(jìn)行一頁n條數(shù)據(jù)的分頁運(yùn)算。類Page用于表示第m頁的數(shù)據(jù)扛吞。

Paginator類實(shí)例對象

Paginator(列表,int):返回分頁對象鹃觉,參數(shù)為列表數(shù)據(jù),每面數(shù)據(jù)的條數(shù)

屬性

count:返回對象總數(shù)鳞尔。
num_pages:返回頁面總數(shù)嬉橙。
page_range:返回頁碼列表,從1開始寥假,例如[1, 2, 3, 4]市框。

方法

page(m):返回Page類實(shí)例對象,表示第m頁的數(shù)據(jù)糕韧,下標(biāo)以1開始枫振。

Page類實(shí)例對象

調(diào)用Paginator對象的page()方法返回Page對象喻圃,不需要手動構(gòu)造。

屬性

object_list:返回當(dāng)前頁對象的列表粪滤。
number:返回當(dāng)前是第幾頁斧拍,從1開始。
paginator:當(dāng)前頁對應(yīng)的Paginator對象杖小。

方法

has_next():如果有下一頁返回True肆汹。
has_previous():如果有上一頁返回True。
len():返回當(dāng)前頁面對象的個數(shù).

創(chuàng)建完models后添加一些數(shù)據(jù)
class BookInfo(models.Model):
    btitle=models.CharField(max_length=20)
    bpub_date=models.DateTimeField(db_column='pub_date')
    bread=models.IntegerField(default=0)
    bcommet=models.IntegerField(null=False)
    isDelete=models.BooleanField(default=False)

class HeroInfo(models.Model):
    hname=models.CharField(max_length=10)
    hgender=models.BooleanField(default=True)
    hcontent=models.CharField(max_length=1000)
    isDelete=models.BooleanField(default=False)
    book=models.ForeignKey(BookInfo)

SQL語句

insert into booktest_bookinfo(btitle,bpub_date,bread,bcommet,isDelete) values
('射雕英雄傳','1980-5-1',12,34,0),
('天龍八部','1986-7-24',36,40,0),
('笑傲江湖','1995-12-24',20,80,0),
('雪山飛狐','1987-11-11',58,24,0)
insert into booktest_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values
('郭靖',1,1,'降龍十八掌',0),
('黃蓉',0,1,'打狗棍法',0),
('黃藥師',1,1,'彈指神通',0),
('歐陽鋒',1,1,'蛤蟆功',0),
('梅超風(fēng)',0,1,'九陰白骨爪',0),
('喬峰',1,2,'降龍十八掌',0),
('段譽(yù)',1,2,'六脈神劍',0),
('虛竹',1,2,'天山六陽掌',0),
('王語嫣',0,2,'神仙姐姐',0),
('令狐沖',1,3,'獨(dú)孤九劍',0),
('任盈盈',0,3,'彈琴',0),
('岳不群',1,3,'華山劍法',0),
('東方不敗',0,3,'葵花寶典',0),
('胡斐',1,4,'胡家刀法',0),
('苗若蘭',0,4,'黃衣',0),
('程靈素',0,4,'醫(yī)術(shù)',0),
('袁紫衣',0,4,'六合拳',0)
配置URL和視圖函數(shù)
url(r'^herolist/$', views2.herolist)
視圖函數(shù)
from django.shortcuts import render
from . import models
from django.core.paginator import *
....
進(jìn)行分頁練習(xí)
def herolist(request):
    list = models.HeroInfo.objects.all()
    #第一參數(shù)為所有內(nèi)容 第二個參數(shù)為每頁放幾條
    paginator = Paginator(list, 5)
    page = paginator.page(1)
    context = {'page': page}
    return render(request, 'herolist.html',context)
配置模板

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <ul>
            {% for hero in page %}
                <li>{{ hero.hname }}</li>
            {% endfor %}
        </ul>
    </body>
</html>
URL修改
url(r'^herolist/(\d+)$', views2.herolist)
修改視圖
#進(jìn)行分頁練習(xí)
def herolist(request, pindex='1'):
    list = models.HeroInfo.objects.all()
    # 第一參數(shù)為所有內(nèi)容 第二個參數(shù)為每頁放幾條
    paginator = Paginator(list, 5)
    page = paginator.page(int(pindex))
    context = {'page': page}
    return render(request, 'herolist.html', context)
修改模板
...
<hr>
{% for index in page.paginator.page_range %}
    <a href="/herolist/{{ index }}">{{ index }}</a>
{% endfor %}
...
修改報(bào)錯
圖片.png
# #進(jìn)行分頁練習(xí)
def herolist(request, pindex):
...
if pindex == '':
    pindex = 1
...

優(yōu)化

優(yōu)化前
圖片.png
優(yōu)化后
圖片.png
圖片.png
{% for index in page.paginator.page_range %}
    {% if index == page.number %}
        {{ index }}
    {% else %}
        <a href="/herolist/{{ index }}">{{ index }}</a>
    {% endif %}
 {% endfor %}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窍侧,一起剝皮案震驚了整個濱河市县踢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伟件,老刑警劉巖硼啤,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異斧账,居然都是意外死亡谴返,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門咧织,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗓袱,“玉大人,你說我怎么就攤上這事习绢∏ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵闪萄,是天一觀的道長梧却。 經(jīng)常有香客問我,道長败去,這世上最難降的妖魔是什么放航? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮圆裕,結(jié)果婚禮上广鳍,老公的妹妹穿的比我還像新娘。我一直安慰自己吓妆,他們只是感情好赊时,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耿战,像睡著了一般蛋叼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天狈涮,我揣著相機(jī)與錄音狐胎,去河邊找鬼。 笑死歌馍,一個胖子當(dāng)著我的面吹牛握巢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播松却,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼暴浦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晓锻?” 一聲冷哼從身側(cè)響起歌焦,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎砚哆,沒想到半個月后独撇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躁锁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年纷铣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片战转。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡搜立,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出槐秧,到底是詐尸還是另有隱情啄踊,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布刁标,位于F島的核電站社痛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏命雀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一斩箫、第九天 我趴在偏房一處隱蔽的房頂上張望吏砂。 院中可真熱鬧,春花似錦乘客、人聲如沸狐血。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匈织。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缀匕,已是汗流浹背纳决。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乡小,地道東北人阔加。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像满钟,于是被迫代替她去往敵國和親胜榔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 模塊間聯(lián)系越多湃番,其耦合性越強(qiáng)夭织,同時表明其獨(dú)立性越差( 降低耦合性,可以提高其獨(dú)立性)吠撮。軟件設(shè)計(jì)中通常用耦合度和內(nèi)聚...
    riverstation閱讀 2,061評論 0 8
  • 1尊惰、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_x閱讀 15,968評論 3 119
  • 描述 給你一個整數(shù)n. 從 1 到 n 按照下面的規(guī)則打印每個數(shù): 如果這個數(shù)被3整除,打印fizz.如果這個數(shù)被...
    Airycode閱讀 674評論 0 0
  • 前言:準(zhǔn)備看下YY系列中的YYWebImage框架,發(fā)現(xiàn)該框架是使用YYCache來做緩存的纬向。那就從緩存開始吧.先...
    爆炸頭的波波安閱讀 6,893評論 4 51
  • 2018年3月29日 星期四 天氣晴 今天又是忙碌的一天择浊,早上送若寧去了學(xué)校,然后去市北區(qū)尚水名...
    一個小老漢閱讀 141評論 0 0