Django博客教程之六:搜索和Readmore与RSS和分页
一、搜索和ReadMore#
1、 搜索功能##
搜索功能的实现设计:
(1)前端界面输入搜索关键字,传送到对应view中
(2)在对应的view中进行数据库关键字搜索
这里搜索可以只对文章名搜索或全文搜索,首先在my_blog/templates下添加所有输入框,在base.html中,对侧边栏的代码进行如下的修改



在my_blog/article/views.py中添加查询逻辑

这里为了简单起见,直接对archives.html进行修改,使其符合查询逻辑,添加了if判断逻辑

还需要修改views中的archives

最后添加my_blog/my_blog/urls.py设置url

最终效果

对于ReadMore的前端按钮界面设置早已经添加过了,所以这里只需要进行简单的设置就好
通过使用Django中内建的filter就可以速度实现

这里只需要修改my_blog/templates/home.html界面中的变量的过滤器

在浏览器中输入http://localhost:9000/可以看到效果(最好把博文设置的长一些)

#二、RSS和分页# ##1、 RSS功能##
Django是一个全面型框架,很多功能都可以直接找到,对于RSS功能,可以从其中的高层框架的聚合Feed框架中找到(The syndication feed framework)
上层Feed生成框架可以直接应用Feed类,我们可以直接继承Feed在其中定义自己的方法
在my_blog/article/views.py中定义类

然后在my_blog/article/models.py中重写get_absolute_url方法

之后再my_blog/my_blog/urls.py中设置对应的url

下面修改my_blog/templates/base.html,在其中添加RSS按钮

保存后,在浏览器输入http://localhost:9000/ 可以看到新增的RSS按钮,点击后看到对应效果

当博客文章较多的时候,我们并不希望以此在主页上显示全部的博客文章,而是希望能够每页显示固定的文章数目,这样既能提高性能,也能提高美观度,何乐而不为呢?
现在这一章节来看看怎么实现分页功能
首先添加包
重新home方法
修改模板
修改my_blog/article/views.py中的home函数

修改my_blog/templates下的home.html


这里设置每页显示两篇博文,可以修改成其他数值
效果如下


终于!这里完成了一个博客的基本内容。完成的功能:
- Django-bootstrap-admin优化后台管理, Pure只做前端
- markdown和代码高亮
- aboutme功能建设完成
- 分类
- 标签(需要完善)
- 归档
- 搜索
- read more功能
- RSS功能
- 分页功能

浙公网安备 33010602011771号