Django开发个人博客网站——10、分页功能的实现
2018-02-02 17:15
1051 查看
现在我们的博客可能只有几篇文章,因此可以全部在首页展示出来,随着博客数量的增加,当达到几十上百篇时,全部展现在首页是不显示也是不友好的,这个时候我们就需要对博客进行分页了。django有它自带的分页功能:Paginator
不过我们用在它基础上开发的另一个包:django-pure-pagination
用于展示底部分页栏中数量的显示,可以对其进行更改尝试不同效果。
然后将分页展示下的内容替换成如下,这里面参数具体含义,可以参考前面给到的官方文档:
为了得到分页的效果,同学们可以从后台多添加十几篇博客就行了,或者将试图函数中的每个页面展示数该小为1。
——————————————————————————————————————————
项目的完整代码:django_blog
觉得有用的欢迎给个star。
不过我们用在它基础上开发的另一个包:django-pure-pagination
1、安装
在虚拟环境中通过pip安装:pip install django-pure-pagination
2、设置
在setting.py中设置:INSTALLED_APPS = ( ... 'pure_pagination', ) PAGINATION_SETTINGS = { 'PAGE_RANGE_DISPLAYED': 3, #中间显示的个数 'MARGIN_PAGES_DISPLAYED': 2, #两边显示的个数 'SHOW_FIRST_PAGE_WHEN_INVALID': True, }
用于展示底部分页栏中数量的显示,可以对其进行更改尝试不同效果。
3、视图函数
from pure_pagination import PageNotAnInteger, Paginator class IndexView(View): def get(self, request): all_blog = Blog.objects.all().order_by('-id') # 分页 try: page = request.GET.get('page', 1) except PageNotAnInteger: page = 1 p = Paginator(all_blog, 5, request=request) #5为每页展示的博客数目 return render(request, 'index.html', { 'all_blog': all_blog, })
4、前端展示
在for循环时,需要在all_blog后多加个object_list:{% for b 4000 log in all_blog.object_list %} ... {% endfor %}
然后将分页展示下的内容替换成如下,这里面参数具体含义,可以参考前面给到的官方文档:
<!--分页展示--> <nav class="pagination"> <div class="pageturn"> <ul class="pagelist"> {% if all_blog.has_previous %} <li class="long"><a href="?{{ all_blog.previous_page_number.querystring }}">上一页</a></li> {% endif %} {% for page in all_blog.pages %} {% if page %} {% ifequal page all_blog.number %} <li class="active"><a href="?{{ page.querystring }}">{{ page }}</a></li> {% else %} <li><a href="?{{ page.querystring }}" class="page">{{ page }}</a></li> {% endifequal %} {% else %} <li class="none"><a href="">...</a></li> {% endif %} {% endfor %} {% if all_blog.has_next %} <li class="long"><a href="?{{ all_blog.next_page_number.querystring }}">下一页</a></li> {% endif %} </ul> </div> </nav>
5、显示效果
显示效果可以直接去我博客中看:http://www.geerniya.cn/为了得到分页的效果,同学们可以从后台多添加十几篇博客就行了,或者将试图函数中的每个页面展示数该小为1。
——————————————————————————————————————————
项目的完整代码:django_blog
觉得有用的欢迎给个star。
相关文章推荐
- Django开发个人博客网站——19、通过Django Haystack实现搜索功能(上)
- Django开发个人博客网站——21、实现博客的统计功能
- Django开发个人博客网站——15、通过markdown实现博客内容的展示
- Django开发个人博客网站——18、实现博客的分类
- Django开发个人博客网站——11、通过regroup实现博客的归档
- Django开发个人博客网站——13、实现标签下所有博客的展示
- Django开发个人博客网站——8、博客首页的开发
- Django开发个人博客网站——3、使用pycharm创建博客项目
- Django学习(二)——实现个人博客网站
- Django开发个人博客网站——5、创建第一个app
- Django开发个人博客网站——26、服务器centos7安装mysql
- Django开发个人博客网站——27、服务器centos7安装Python3.6 与 pip3
- Django开发个人博客网站——23、域名申请、备案与服务器的选择
- Django开发个人博客网站——24、服务器的远程连接管理
- 用flask开发个人博客(37)—— 使用Flask-pagedown实现博客文章预览的功能
- Django开发个人博客网站——22、博客的最后完善
- Django开发个人博客网站——7、通过admin管理后台
- Django开发个人博客网站——2、通过virtualenv与virtualenvwrapper创建虚拟环境
- Django开发个人博客网站——1、开发环境
- 我的博客网站开发4——博客首页功能实现之博文摘要