码迷,mamicode.com
首页 > 其他好文 > 详细

django 简单分页

时间:2017-05-26 16:37:43      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:href   blog   port   pre   位置   ref   string   request   model   

初学django分页, 变量名写的太随意见谅. 

1
view.py 2 3 def Index(request,page): 4 page = common(page,1) 5 pageDataCount = 20 6 #data 7 data = models.Host.objects.all() 8 #传入数据量,当前页码数,每页显示多少条数据 9 ret = Pager(data,page,pageDataCount) 10 return render_to_response(day13/index.html,ret)
html_helper.py
from django.utils.safestring import mark_safe
import math
def html_div():
    div = ‘‘‘
        <div>
                <a href="/day13/index/1">首页</a>
                <a>&nbsp;</a>
                <a>当前页第 {} 页 </a>
                <a>&nbsp;</a>
                <a href="/day13/index/{}">上一页</a>
                <a>&nbsp;</a>
                <a href="/day13/index/{}">下一页</a>
                <a> &nbsp; 共{} 页</a>
                <a> &nbsp;每页显示 {}条</a>
                <a> &nbsp;  总条数为 {} 条 &nbsp;</a>
                <a href="/day13/index/{}">尾页</a>
            </div>
        ‘‘‘
    return div

def Pager(data,page,pageDataCount):
    ‘‘‘
    :param page: 当前页数
    :param pageDataCount: 每页显示多少条
    :param data_count: 数据总条数
    :return: 字典
    ‘‘‘
    #处理前端传来页码数
    page = 1 if page <= 0 else page
    #数据起始位置
    indexPage = (page - 1) * pageDataCount
    # 数据结束位置
    endPage = page * pageDataCount
    #获取数据总条数
    data_count = data.count()
    #对比起始位置是否大于总条数
    if indexPage > data_count:
        page = 1
        indexPage = (page - 1) * pageDataCount
        endPage = page * pageDataCount
    #每页显示多少数据
    data = data[indexPage:endPage]
    #总页数
    web = math.ceil(data_count / pageDataCount)
    #生成分页样式
    div = html_div()
    #填充数据
    webDiv = div.format(page, 1 if page - 1 <= 0 else page - 1, page + 1, web, pageDataCount, data_count,
                        1 if page > web else web)
    #通过mark_safe 将格式化html代码
    page = mark_safe(webDiv)
    ret = {data:data,page: page}
    return ret

 

django 简单分页

标签:href   blog   port   pre   位置   ref   string   request   model   

原文地址:http://www.cnblogs.com/lcmemo/p/6909186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!