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

 

最终效果

 

##2、 ReadMore功能##

对于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按钮,点击后看到对应效果

 

##2、 分页功能##

当博客文章较多的时候,我们并不希望以此在主页上显示全部的博客文章,而是希望能够每页显示固定的文章数目,这样既能提高性能,也能提高美观度,何乐而不为呢?

现在这一章节来看看怎么实现分页功能

首先添加包

重新home方法

修改模板

修改my_blog/article/views.py中的home函数

 

修改my_blog/templates下的home.html

 

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

效果如下

 

#三、实验总结#

终于!这里完成了一个博客的基本内容。完成的功能:

  1. Django-bootstrap-admin优化后台管理, Pure只做前端
  2. markdown和代码高亮
  3. aboutme功能建设完成
  4. 分类
  5. 标签(需要完善)
  6. 归档
  7. 搜索
  8. read more功能
  9. RSS功能
  10. 分页功能
posted @ 2017-06-12 08:20  tiretiretire  阅读(300)  评论(0)    收藏  举报