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,})
views.py

相关文章:

  • 2021-12-13
  • 2021-06-03
  • 2022-12-23
猜你喜欢
  • 2021-07-30
  • 2021-09-04
  • 2021-08-16
  • 2021-07-31
  • 2021-12-07
相关资源
相似解决方案