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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章