zoukankan      html  css  js  c++  java
  • Django Paginator分页器

    如何实现在django中实现分页效果,我使用的是django自带的分页器paginator
    具体是使用办法是这样的首先引用from django.core.paginator import Paginator
    首先得到你需要实现分页的文章:article_list = Article.objects.all()
    之后规定一个变量paginator用这个变量去储存分页结果
    paginator = Paginator(article_list, 5)
    这里Paginator中第一个参数是需要分页的目标,第二个参数是你想要多少个目标分成一页
    这里是首先我的目标是article_list之后我需要每5篇文章分成一页

    之后在django中我们还需要去获取到每一页的url
    page = int(request.GET.get('page',1))
    页数page使用request.GET的方法获取,get的第一个参数是page,如果没有获取到,自动获取第1页
    article_list = paginator.page(page)

    然后得到了page页对应的文章列表

    代码展示:

    # 定义首页方法
    def index(request):
        try:
            article_list = Article.objects.all()
            article_list = getPage(request,article_list)
        except Exception as e:
            logger.error(e)
        return render(request, 'index.html', locals())
    
    
    # 重构分页代码
    def getPage(request, article_list):
        paginator = Paginator(article_list, 5)
        try:
            page = int(request.GET.get('page', 1))
            article_list = paginator.page(page)
        except (EmptyPage, InvalidPage, PageNotAnInteger):
            article_list = paginator.page(1)
        return article_list

    详细补充:

  • 相关阅读:
    laravel5.2总结--blade模板
    laravel5.2总结--响应
    laravel5.2总结--请求
    git总结
    laravel5.2总结--路由
    Get与Post的一些总结
    python库安装
    iptables的recent模块
    iptables
    dmucs与distcc
  • 原文地址:https://www.cnblogs.com/hooo-1102/p/11905810.html
Copyright © 2011-2022 走看看