django1.8.2 建站实现分页显示功能

个人经验:

django先写view,在再写url,最后写html文件。

要实现某个功能,先google查找相关文章,在到文档中寻找相关章节,最后本地实现功能。

 

 

1、django1.8.2 实现分页功能

  分页功能,文档中有Paginator类,里面有丰富的功能。如果使用了通用视图(from django.views.generic import ListView),可以直接使用Page objects的属性函数。

 

2、django文档地址:  

http://python.usyiyi.cn/django_182/topics/pagination.html #使用Page objects的属性函数

https://docs.djangoproject.com/en/1.9/topics/class-based-views/mixins/ #(1.8相同)通用视图分页文档,里面
的默认page_obj,在html文件中要用到。

 

3、代码

view.py

1 class IndexView(ListView):
2     model = Article
3     template_name = 'blog/index.html'
4     context_object_name = 'latest_article_list'
5     paginate_by = 2
6 
7     def get_queryset(self):
8         return Article.objects.order_by('-updated')

涉及分页功能的只有paginate_by = 2 #设置每页显示数目

 

前端代码

 1 <!--分页显示-->
 2 <div class="pagination pagination-right">
 3     <ul contenteditable="false">
 4         <li><a href="{{ request.path }}?page=1">&laquo;</a></li>
 5         {% if page_obj.has_previous %}
 6             <li><a href="{{ request.path }}?&page={{ page_obj.previous_page_number }}">上一页</a></li>
 7         {% endif %}
 8         {% for i in page_obj.paginator.page_range %}
 9             <li {% if page_obj.number == i %}class="active"{% endif %}><a href="{{ request.path }}?page={{ i }}">{{ i }}</a></li>
10         {% endfor %}
11         {% if page_obj.has_next %}
12             <li><a href="{{ request.path }}?&page={{ page_obj.next_page_number }}">下一页</a></li>
13         {% endif %}
14         <li><a href="{{ request.path }}?page={{ page_obj.paginator.num_pages }}">&raquo;</a></li>
15     </ul>
16 </div>

里面使用到的函数在链接(http://python.usyiyi.cn/django_182/topics/pagination.html)里面有详细介绍

 

参考网站:

http://lihuipeng.blog.51cto.com/3064864/1436010  #通用视图写法,参考前端

 

4、最终效果

 

end

 

 

 



 

转载于:https://www.cnblogs.com/hb91/p/5155482.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值