使用Django框架怎么实现分页显示内容-创新互联

今天就跟大家聊聊有关使用Django框架怎么实现分页显示内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联服务项目包括海兴网站建设、海兴网站制作、海兴网页制作以及海兴网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,海兴网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到海兴省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

1、作用

数据加载优化

2、前端引入bootstrap样式:

{# 引入bootstrap样式的cdn资源 #}

引入分页器:


  

文章列表

       {# 遍历博文 #}     {% for blog in page.object_list %}       {# 显示博文标题 #}       
  •         

    {{ blog.title }}

          
  •     {% endfor %}      {#分页器:html内容拷贝于bootstrap网站-组件-分页#}   {# bootstrap是一整套成熟经典的页面组件框架 #}               {# 上一页按钮 #}       {# 如果有上一页 #}       {% if page.has_previous %}         
  •           {# 点击超链接,对上一页的页面发起访问 #}                        «                    
  •       {# 如果没有上一页 #}       {% else %}         {# 当没有上一页时,阅读bootrap文档得知,对当前li使用disabled样式 #}                    {# href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ,处于禁用状态的按钮被点击时直接跳转本页 #}                        «                           {% endif %}       {# 页码按钮 #}       {# 遍历传入的页码范围 #}       {% for p in pagerange %}         {# 如果页码=当前页页码 #}         {% ifequal p currentpage %}           {# 被选中的页码具有高亮效果,阅读bootrap文档得知,对当前li使用active样式 #}           {# {% url 'app:blogs' p %} 点击页码,对第p页的路由发起访问 #}           {{ p }}         {% else %}           {# 非当前页页码普通显示 #}           
  • {{ p }}
  •         {% endifequal %}       {% endfor %}       {# 下一页按钮 #}       {% if page.has_next %}         
  •           {# 点击超链接,对下一页的页面发起访问 #}                        »           
  •       {% else %}         {# 当没有下一页时,阅读bootrap文档得知,对当前li使用disabled样式 #}                    {# href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ,处于禁用状态的按钮被点击时直接跳转本页 #}                        »                  {% endif %}        

    3、Paginator

    • 数据分页工具

    • 对象创建

      • Paginator(数据集,每一页数据数)

    • 属性

      • count:对象总数

      • page_range:页码列表,从1开始

      • num_pages:页面总数

    • 方法

      • page(整数): 获得一个page对象

    • 常见错误

      • InvalidPage:page()传递无效页码

      • PageNotAnInteger:page()传递的不是整数

      • Empty:page()传递的值有效,但是没有数据

    4、Page

    • 具体的某一页面

    • 对象获得,通过Paginator的page()方法获得

    • 属性

      • object_list:当前页面上所有的数据对象

      • number:当前页的页码值

      • paginator: 当前page关联的Paginator对象

    • 方法

      • has_next():判断是否有下一页

      • has_previous():判断是否有上一页

      • has_other_pages():判断是否有上一页或下一页

      • next_page_number():返回下一页的页码

      • previous_page_number():返回上一页的页码

      • len():返回当前页的数据的个数

    # 显示博文列表
    # pagenum=路由参数=用户想要查看第几页
    def showBlogs(request, pagenum):
      # 查询数据库获取所有博文
      blogs = Blog.objects.all()
      # 构建分页器对象,blogs=所有博文,2=每页显示的个数
      paginator = Paginator(blogs, 2)
      # 获取第n页的页面对象
      page = paginator.page(pagenum)
      # Paginator和Page的常用API
      # page.previous_page_number()
      # page.next_page_number()
      # page.has_previous()
      # page.has_next()
      # 构造页面渲染的数据
      '''
      渲染需要的数据:
      - 当前页的博文对象列表
      - 分页页码范围
      - 当前页的页码
      '''
      data = {
        # 当前页的博文对象列表
        'page': page,
        # 分页页码范围
        'pagerange': paginator.page_range,
        # 当前页的页码
        'currentpage': page.number,
      }
      # 将数据丢给页面渲染
      return render(request, 'blogs.html', context=data)

    看完上述内容,你们对使用Django框架怎么实现分页显示内容有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联成都网站设计公司行业资讯频道,感谢大家的支持。

    另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


    网页名称:使用Django框架怎么实现分页显示内容-创新互联
    文章出自:http://ybzwz.com/article/dciijo.html

    其他资讯