【Django系列】三:Django搭建一个个人博客流程(分页和博客的归档)
第三天:
21:分页功能的实现:
现在我们的博客可能只有几篇文章,因此可以全部在首页展示出来,随着博客数量的增加,当达到几十上百篇时,全部展现在首页是不显示也是不友好的,这个时候我们就需要对博客进行分页了。django有它自带的分页功能:Paginator。不过我们用在它基础上开发的另一个包:django-pure-pagination。。
下载地址:https://github.com/jamespacileo/django-pure-pagination
也可以直接用pip进行安装。。安装命令 pip install django-pure-pagination
22:在blog下的setting.py 文件中做一下修改:
①:将刚才安装的包添加到应用中
②:然后在setting.py文件的末尾添加:
23:修改视图函数(在myblog文件下的views.py中),修改内容如下:
前面的一些内容我没截屏。所以不敢以为我删了。。
24:前端的修改:
其次,将index.html下的分页展示的内容换为以下的内容,修改过的index.html页面我放在了所给资源的tempaltes文件夹下。名字叫“第三次修改index”。将其拷到本项目的templates下,修改名字覆盖当前的index.html
<!--分页展示-->
<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>
25:为了体验分页,我写了6篇博客。。看到分页咯
26:我们再实现一个功能:通过regroup实现博客的归档
将所给资源中的archive.html拷贝到我们的templates中
27:编写视图函数,在myblog目录下的views.py文件中添加以下内容:
28:配置url地址 在blog目录下的urls.py中添加:
29:直接访问:http://127.0.0.1:8000/archive/ 就可以看到:
30:我们现在做一件比较重要的事情: 给头部的“首页”,“归档”等设置相对应的链接。点击可以转换到对应的界面。
打开templates下的base.html文档 。分别找到首页,归档的位置,将href值改为:
今天我们做了归档和分页的功能,碰到问题,大家可以留言。。。明天继续。。