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,})
相关文章: