免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
django分頁

django實現(xiàn)分頁的兩種形式

一、django內(nèi)置方法實現(xiàn)分頁

django自帶的分頁不能設(shè)置樣式

def domen(request):    # for i in range(101):    #     models.DataInfo.objects.create(name="root_%s"%i,phone=11111)#獲取url中cur_page的參數(shù)    cur_page=request.GET.get('cur_page')    cur_page=int(cur_page)    data_list=models.DataInfo.objects.all()    from django.core.paginator import Paginator    paginatos=Paginator(data_list,10)    # per_page: 每頁顯示條目數(shù)量    # count:    數(shù)據(jù)總個數(shù)    # num_pages:總頁數(shù)    # page_range:總頁數(shù)的索引范圍,如: (1,10),(1,200)    # page:     page對象        # res=paginatos.count    # res=paginatos.num_pages    # res=paginatos.page_range    # res=paginatos.page(2).number    users=paginatos.page(cur_page)    # has_next              是否有下一頁    # next_page_number      下一頁頁碼    # has_previous          是否有上一頁    # previous_page_number  上一頁頁碼    # object_list           分頁之后的數(shù)據(jù)列表    # number                當(dāng)前頁    # paginator             paginator對象    return render(request,'domen.html',{"users":users})
<div class="box">    <ul>        {% for user in users %}            <li>            {{ user.name }}        {% endfor %}        </li>    </ul>{#獲取上一頁#}{% if users.has_previous %}    <a href="/domen/?cur_page={{ users.previous_page_number }}">上一頁</a>{% endif %}{#獲取頁碼#}{% for num in users.paginator.page_range %}    <a href="/domen/?cur_page={{ num }}">{{ num }}</a>{% endfor %}{#獲取下一頁#}{% if users.has_next %}    <a href="/domen/?cur_page={{ users.next_page_number }}">下一頁</a>{% endif %}</div>

二、自定義頁面分頁

1、處理頁數(shù)的方法

class PageInfo:    '''頁數(shù)處理類'''    #total  總的數(shù)據(jù)為列表套對象    #cur_page  前端發(fā)過來的當(dāng)前頁碼    #per_page  一頁展示的數(shù)據(jù)的條數(shù)    #show_page  顯示頁面下端頁碼顯示的數(shù)目    def __init__(self,total,cur_page,per_page=10,show_page=11):        a,b=divmod(total,per_page)        if b!=0:            a =1        self.total=total        self.cur_page=cur_page        self.per_page=per_page        self.show_page=show_page        self.total_page_num=a        #獲取數(shù)據(jù)庫查詢的起始位置        self.start = (cur_page - 1) * per_page        #獲取數(shù)據(jù)庫的結(jié)束位置        self.end = self.start   per_page        #獲取當(dāng)前頁起始數(shù)據(jù)的位置    def get_start_num(self):        return self.start        #獲取數(shù)據(jù)庫結(jié)束數(shù)據(jù)的位置    def get_end_num(self):        return self.end    def get_page(self):        #獲得距離當(dāng)前頁的數(shù)量,用于展示頁數(shù)多少        step=self.show_page//2        #展示頁起始點        begin=self.cur_page-step        off = self.cur_page   step        #判斷開始頁是否小于0等于0,或小于等于0,開始開始頁始終設(shè)置為1        if begin<=0:            begin=1        #判斷最后的幾頁是否還湊步數(shù)        elif self.total_page_num-self.cur_page<=step:            off=self.total_page_num        #判斷若總的頁數(shù)小于需要展示的頁數(shù)        if self.total_page_num<self.show_page:            off=self.total_page_num        lis=[]        #判斷當(dāng)前頁是否為第一頁,若為第一次就不能點擊上一頁        if self.cur_page-1<=0:            str="<li><a href='#'><span aria-hidden='true'>&laquo;</span></a></li>"        else:            str="<li><a href='/index/?cur_page=%s' aria-label='Previous'><span aria-hidden='true'>&laquo;</span></a></li>"%(self.cur_page-1)        lis.append(str)        #遍歷獲取頁數(shù)標(biāo)簽        for index in range(begin,off 1):            if self.cur_page==index:                str="<li><a href='/index/?cur_page=%s' style='background:blue;color:white;'>%s</a></li>"%(index,index)            else:                str="<li><a href='/index/?cur_page=%s'>%s</a></li>"%(index,index)            lis.append(str)        if self.cur_page>=self.total_page_num:            str="<li><a href='#'><span aria-hidden='true'>&raquo;</span></a></li>"        else:            str="<li><a href='/index/?cur_page=%s' aria-label='Previous'><span aria-hidden='true'>&raquo;</span></a></li>"%(self.cur_page 1)        lis.append(str)        s=" ".join(lis)        return s

2、分頁處理模型類

class IndexPage(View):    '''分頁模型類'''    def get(self,request):        #獲取當(dāng)前頁這里是字符創(chuàng)格式        cur_page=request.GET.get('cur_page')        #將字符創(chuàng)格式的cur_page轉(zhuǎn)化成數(shù)字類型        cur_page=int(cur_page)        # total=models.DataInfo.objects.all()[0:10]                #獲取數(shù)據(jù)庫數(shù)據(jù)總數(shù)量        total=models.DataInfo.objects.filter(id__lt=40).count()        #實例化頁數(shù)處理類的對象        page_obj=PageInfo(total,cur_page)        start=page_obj.get_start_num()        end=page_obj.get_end_num()                #對數(shù)據(jù)庫查出的數(shù)據(jù)進(jìn)行切片        users=models.DataInfo.objects.all()[start:end]        s=page_obj.get_page()        return render(request,'index.html',{"user_lis":users,"page":s})

3、分頁模板

<link rel="stylesheet"       integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><style>    .page{        text-align: center;    }</style><table class="table-bordered table">    <p class="btn btn-primary">歡迎光臨</p>    <thead>    <tr>        <th>ID</th>        <th>姓名</th>        <th>電話</th>    </tr>    </thead>    <tbody>    {% for user in user_lis %}        <tr>            <td>{{ user.id }}</td>            <td>{{ user.name }}</td>            <td>{{ user.phone }}</td>        </tr>    {% endfor %}    </tbody></table><div class="page">        <nav aria-label="Page navigation">            <ul class="pagination">                {{ page | safe }}            </ul>        </nav>    </div>
來源:https://www.icode9.com/content-4-392701.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python測試開發(fā)django-116.Paginator分頁器頁數(shù)大時顯示省略號...
django 分頁
Django高效率分頁方法
Django——完美的分頁器
django 分頁加序號
基于Django+Bootstrap框架,設(shè)計微型小說網(wǎng)站
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服