django-day17

给靓号列表页面加个搜索框
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分页

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
搜索页面跳转到当前页面
在这里插入图片描述
页面处理逻辑

def pretty_list(request):
    import copy
    data_dict = {}
    search_data = request.GET.get('q', "")
    if search_data:
        data_dict['mobile__contains'] = search_data
    # 计算出当,显示当前页的前5页,后5页
    # 根据用户想要获取的页码确定起始位置
    page = int(request.GET.get('page', 1))
    page_size = 10  # 每页展示10条数据
    start = (page - 1) * page_size
    end = page * page_size

    total_count = models.PrettyNum.objects.filter(**data_dict).count()
    queryset = models.PrettyNum.objects.filter(**data_dict).order_by("-level")[start:end]
    total_page_count, div = divmod(total_count, page_size)
    if div:
        total_page_count += 1
        # 生成页码,传给前端
    plus = 5
    # 如果总的页数小于等于11就不设置翻页了,就页码都显示出来
    if total_page_count <= 2 * plus + 1:
        start_page = 1
        end_page = total_page_count + 1
    else:
        # 否则数据库的总页数大于11页就,根据当前所选页面的值,展示前
        # 5页和后5页
        if page <= plus:
            # 当前页面小于5,则前面的就
            start_page = 1
            end_page = 2 * plus + 1
        else:
            # 当前页+5 大于总页面的时候
            if page + plus > total_page_count:
                start_page = total_page_count - 2 * plus
                end_page = total_page_count
            else:
                start_page = page - plus
                end_page = page+plus+1

    from django.utils.safestring import mark_safe
    page_str_list = []
    page_str_list.append('<li><a href="?page={}">首页</a></li>'.format(1))
    # 上一页,也就是当前页+1
    # 但是要处理第一页翻到0的情况
    if page > 1:
        prev = '<li><a href="?page={}">上一页</a></li>'.format(page - 1)
    else:
        prev = '<li><a href="?page={}">上一页</a></li>'.format(1)
    page_str_list.append(prev)
    for i in range(start_page, end_page):
        if i == page:
            ele = '<li class="active"> <a href="?page={}">{}</a></li>'.format(i, i)
        else:
            ele = '<li> <a href="?page={}">{}</a></li>'.format(i, i)
        page_str_list.append(ele)
    # 下一页,要考虑页面+1大于总页数的情况
    if page < total_page_count:
        prev = '<li><a href="?page={}">下一页</a></li>'.format(page + 1)
    else:
        prev = '<li><a href="?page={}">下一页</a></li>'.format(total_page_count)
    page_str_list.append(prev)
    page_str_list.append('<li><a href="?page={}">尾页</a></li>'.format(total_page_count))
    page_str_list = mark_safe("".join(page_str_list))

    return render(request, 'pretty_list.html',
                  {'queryset': queryset, "search_data": search_data, "page_string": page_str_list})

然后前端页面这样写
在这里插入图片描述

然后需要在搜索的时候也保留分页的条件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
**

时间插件

**
非MOdelForm版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ModelForm版本,引入一样
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值