初学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> </a>
<a>当前页第 {} 页 </a>
<a> </a>
<a href="/day13/index/{}">上一页</a>
<a> </a>
<a href="/day13/index/{}">下一页</a>
<a> 共{} 页</a>
<a> 每页显示 {}条</a>
<a> 总条数为 {} 条 </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
转载于:https://www.cnblogs.com/lcmemo/p/6909186.html