首页 > 代码库 > django 简单分页
django 简单分页
初学django分页, 变量名写的太随意见谅.
1 view.py 2 3 def Index(request,page): 4 page = common(page,1) 5 pageDataCount = 20 6 #data 7 data =http://www.mamicode.com/ 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="http://www.mamicode.com/day13/index/1">首页</a> <a> </a> <a>当前页第 {} 页 </a> <a> </a> <a href="http://www.mamicode.com/day13/index/{}">上一页</a> <a> </a> <a href="http://www.mamicode.com/day13/index/{}">下一页</a> <a> 共{} 页</a> <a> 每页显示 {}条</a> <a> 总条数为 {} 条 </a> <a href="http://www.mamicode.com/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 =http://www.mamicode.com/ 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 简单分页
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。