RSS 订阅

     博客提供 RSS 订阅应该是标配。这样读者就可以通过一些聚合阅读工具来订阅你的博客,时时查看是否有更新,而不必每次都跳转到博客上来查看。

RSS 简介

      RSS(Really Simple Syndication)是一种描述和同步网站内容的格式。,它采用 XML 作为内容传递的格式。
简单来说就是网站可以把内容包装成符合 RSS 标准的 XML 格式文档。
一旦网站内容符合一个统一的规范,那么人们就可以开发一种读取这种规范化的 XML 文档的工具来聚合各大网站的内容。

使用 Django Feed 类

    

    根据以上对 RSS 的介绍,我们可以发现关键的地方就是根据网站的内容生成规范化的 XML 文档。
Django 已经内置了一些生成这个文档的方法.
在 blog 应用的根目录下(models.py 所在目录)新建一个 feeds.py 文件以存放和 RSS 功能相关的代码.然后在feeds.py中写入如下代码:
    from django.contrib.syndication.views import Feed

    from .models import Post
    
    class AllPostRssFeed(Feed):
        # 显示在聚合阅读器上的标题
        title = "千峰博客"
    
        # 通过聚合阅读器跳转到网址的地址
        link = '/index/'
    
        # 显示在聚合阅读器上的描述信息
        description = "千峰博客项目演示测试"
    
        # 需要显示的内容条目
        def items(self):
            return Post.objects.all()
    
        # 聚合器中显示的内容条目的标题
        def item_title(self, item):
            return '[%s]%s' % (item.category, item.title)
    
        # 聚合器中显示的内容条目的描述
        def item_description(self, item):
            return item.content
以上代码就是指定要生成的xml文档内容。

添加 URL

    接下来就是指定 URL 模式,让人们访问这个 URL 后就可以看到 Feed 生成的内容。
通常 RSS 的 URL 配置直接写在项目的 urls.py 文件里。
项目的urls.py中:
    记得在顶部引入 AllPostsRssFeed
    url(r'^all/rss/$', AllPostRssFeed(), name='rss'),

修改模板

    简单修改一下基模板,把 RSS 的 URL 添加到模板中,放在标签云下面:
【templates/base.html】
    <div class="rss">
        <a href="{% url 'rss' %}"><span class="ion-social-rss-outline"></span> RSS 订阅</a>
    </div>    

RSS 测试插件

        使用360浏览器,安装一个RSS Feed Reader应用。
    订阅我们的rss地址即可:http://127.0.0.1:8000/all/rss/

猜你喜欢

转载自blog.csdn.net/yx1179109710/article/details/81294040
RSS
今日推荐