Django开发个人博客网站——17、博客添加RSS订阅

1、RSS简介

RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,它采用 XML 作为内容传递的格式。简单来说就是网站可以把内容包装成符合 RSS 标准的 XML 格式文档。一旦网站内容符合一个统一的规范,那么人们就可以开发一种读取这种规范化的 XML 文档的工具来聚合各大网站的内容。例如一个读者可能关注了很多的博客网站,如果这些博客网站都支持 RSS 订阅的话,他就只需要一个聚合阅读器订阅这些博客,就可以在聚合器工具里看到全部博客的更新内容,而不必再分别访问各个博客去看有没有内容更新了。

2、使用Django Feed类

根据以上对 RSS 的介绍,我们可以发现关键的地方就是根据网站的内容生成规范化的 XML 文档,幸运的是,Django 已经内置了一些生成这个文档的方法,下面就使用这些方法来创建 RSS 订阅文档。

首先在myblog目录下新建一个feeds.py文件,用以存放和 RSS 功能相关的代码“

feeds.py

from django.contrib.syndication.views import Feed
from django.urls import reverse
from myblog.models import Blog

class BlogRssFeed(Feed):

    title = "geerniya的博客小屋"
    link = "/rss/"
    def items(self):
        return Blog.objects.all()
    def item_title(self, item):
        return item.title
    def item_description(self, item):
        return item.content
    def item_link(self, item):
        return reverse('blog_id', args=[item.id,])

关于feed类的详细用法,可以参考官方文档:Feed聚合框架

3、添加url

接下来就是指定 URL 模式,让人们访问这个 URL 后就可以看到 Feed 生成的内容。在urls.py中写入如下内容:

from myblog.feeds import BlogRssFeed

url(r'^rss/$', BlogRssFeed(), name='rss'),

4、修改模板

简单修改一下模板,把 RSS 的 URL 添加到模板中:

base.html

<a href="{% url 'rss' %}" rel="alternate">
    <i class="fa fa-rss"></i>
    RSS
</a>

运行开发服务器,在侧边栏点击 RSS 订阅的链接,就跳转到 /rss/,你会看到这对乱码一样的东西,这就是生成的 RSS 标准文档,当然这个文档不是给你读的,而是给 RSS 聚合阅读器工具读的。

在电脑上可以直接访问是没有问题的,但是对于手机端还是会有排版上的问题,这有待以后再来解决。

——————————————————————————————————————————

项目的完整代码:django_blog
觉得有用的欢迎给个star。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值