LIST=[]
for i in range(1001):
LIST.append(i)
def user_list(request):
current_page = request.GET.get('p',1) # 获取当前页数
current_page = int(current_page)
per_page_count = 20 # 定义获取显示多少条数据
start = (current_page-1)*per_page_count # 获取显示开始数据
end = (current_page)*per_page_count # 获取显示结束数据
data = LIST[start:end] # 切片
all_count = len(LIST) # 获取列表的长度既总元素个数
total_page,div = divmod(all_count,per_page_count) # 根据元素获取页数 每十个元素为一页
if div:
total_page += 1 # 有余数的情况下加一
page_list = [] # 定义一个页数列表
# 当前页 current_page
# 总页数 total_page
# 每页显示10条数据 per_page_count
# 页码让显示11条
# if 总页数 <11
# start_index = 0 end_index = 总页数
# else: 如果 当前页 <= 6 start_index=1 end_index=11
# 否则 start_index=当前页-5 end_index=当前页+5+1
# 如果当前页 +5 >总页数 总页数当做最后一个值 end_index=total_page+1
page_num = 11 # 显示多少页码
if total_page < page_num:
start_index = 1
end_index = total_page+1
else:
if current_page <= (page_num+1)/2:
start_index = 1
end_index = page_num +1
else:
start_index = current_page - (page_num-1)/2
end_index = current_page + (page_num+1)/2
if (current_page+(page_num-1)/2) > total_page:
end_index = total_page+1
start_index = total_page - page_num + 1
if current_page == 1:
prev = "<a class='c1 active' href='javascript:void(0);'>上一页</a>" # 当上一页是第一页时什么都不干
else:
prev = "<a class='c1 active' href='/user_list.html/?p=%s'>上一页</a>"%(current_page-1) #上一页
page_list.append(prev)
for i in range(int(start_index),int(end_index)): # 循环页数列表
if i == current_page:
temp = "<a class='c1 active' href='/user_list.html/?p=%s'>%s</a>" %(i,i) # 如果是当前页数加上样式
else:
temp = "<a class='c1' href='/user_list.html/?p=%s'>%s</a>" %(i,i)
page_list.append(temp)
if current_page == total_page:
next = "<a class='c1 active' href='javascript:void(0);'>下一页</a>"
else:
next = "<a class='c1 active' href='/user_list.html/?p=%s'>下一页</a>" % (current_page + 1) # 下一页
page_list.append(next)
jump = """
<input type='text' /><a onclick='jumpTo(this,"/user_list.html/?p=");' id='i1'>Go</a>
<script>
function jumpTo(ths,base){
var val = ths.previousSibling.value;
location.href = base+val;
}
</script>
"""
page_list.append(jump)
from django.utils.safestring import mark_safe
page = "".join(page_list)
page = mark_safe(page)
return render(request,'user_list.html',{'li':data,'page':page,})