• django分页及搜索后如何翻页


    django自带了Pagnator

    导入

    from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage

    分页

    def pagn(data, limit, page):#分页
      paginator = Paginator(data, limit)
      try:
        data = paginator.page(page)
      except PageNotAnInteger:
        data = paginator.page(1)
    
      except EmptyPage:
        data = paginator.page(paginator.num_pages)
      return data

    搜索后翻页的时候由于搜索参数不会一起跟着传递,所以我们需要在js里面加上搜索参数

    我的方法是通过window.location.href返回当前的url路径,如果有page去掉,加上page=拼接成新的url,该url了里包括了之前的搜索参数

            function getUrl(){
                var current_url = window.location.href;
                var params = current_url.split('?');
                var url =  '';
                //没有参数
                if (params.length == 1){
                    url += '?'
                }
                else {
                    for (i = 0; i < params.length; i++) {
                        if (params[i].indexOf('page') == -1) {
                            if (i==0){
                                url += params[i] + '?'
                            }else{
                                url += params[i] + '&'
                            }
                        }
                    }
                }
                return url
            }

    href里面必须要是这样的127.0.0.1:8000/xxx而不能是127.0.0.1:8000/这样会报错/xxx&page=2是正确的路径,/&page=2是错误的路径,django无法解析

                //下一页
                function nextPage(node) {
                    var url = getUrl()
                    {% if datas.has_next %}
                        var href = url+"page={{ datas.next_page_number}}"
                    {% else %}
                        var href = url+"page={{ datas.number }}"
                    {% endif %}
                    node.href = href
                }
                function previousPage(node) {
                    var url = getUrl()
                    {% if datas.has_previous %}
                        var href = url+"page={{ datas.previous_page_number}}"
                    {% else %}
                        var href = url+"page={{ data.number }}"
                    {% endif %}
                    node.href = href
                }
                function page(node) {
                    var url = getUrl()
                    node.href = url+'page='+node.text
                }
                function turnPage(node){
                    var page = $("#input_page").val()
                    var url = getUrl()
                    node.href = url+'page='+page
                }
  • 相关阅读:
    记一次内衣渗透
    mysql提权
    Token窃取与利用
    组策略首选项提权
    Windows错误配置提权
    windows内核溢出漏洞提权限
    xss漏洞
    mysql语句大全
    二叉树
    10个对所有学科都有用的Python数据可视化库
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/6855683.html
Copyright © 2020-2023  润新知