首页 > 其他 > 详细

django 基于函数实现分页

时间:2019-08-13 16:20:26      阅读:70      评论:0      收藏:0      [点我收藏+]
from django.shortcuts import render,HttpResponse
from app01 import models

def hostnames(request):
    current_page = int(request.GET.get(page))  #获取当前页数
    per_page = 10                                #定义每页显示的页数
    all_data = models.Host.objects.all().count() #统计数据库数据条数
    all_page,b = divmod(all_data,per_page)       #获取分多少页显示 
    if b != 0:
        all_page += 1
    start_page = (current_page-1) * per_page   #定义从哪儿开始
    end_page = current_page * per_page         #定义从哪儿结束
    host_list = models.Host.objects.all()[start_page:end_page]  从数据获取展示的数据

    page_count = 11
    half_page_count = int(page_count /2)
    if all_page < page_count:
        page_start = 1
        page_end = page_count
    else:
        if current_page <= half_page_count:
            page_start = 1
            page_end = page_count
        else:
            if (current_page+5) > all_page:
                page_end = all_page
                page_start = all_page-page_count
            else:
                page_start = current_page -half_page_count
                page_end = current_page + half_page_count



    url_list = []
    if current_page <= 1:
        prev = <a href="#">上一页</a>
    else:
        prev = <a href="/hostnames/?page=%s">上一页</a>%(current_page-1)
    url_list.append(prev)
    for i in range(page_start,page_end+1):
        if current_page == i:
            tp = <a class="active href="/hostnames/?page=%s">%s</a> % (i, i)

        else:
            tp = <a href="/hostnames/?page=%s">%s</a> %(i,i)
        url_list.append(tp)

    if current_page >= all_page:
        next = <a href="#">下一页</a>
    else:
        next = <a href="/hostnames/?page=%s">下一页</a>%(current_page+1)
    url_list.append(next)
    page_str = "".join(url_list)
    print(page_str)
    return render(request,hostnames.html,{host_list:host_list,page_str:page_str})

待补充类......

django 基于函数实现分页

原文:https://www.cnblogs.com/guniang/p/11346518.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!