专栏首页緣來來來Django添加feeds功能

Django添加feeds功能

概念:RSS和Atom都是基于XML的格式,你可以用它来提供有关你站点内容的自动更新的feed。了解更多关于RSS的可以访问http://www.whatisrss.com/, 更多Atom的信息可以访问 http://www.atomenabled.org/.

RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章、新闻、音频或视频的网摘。RSS文件(或称做摘要、网络摘要、或频更新,提供到频道)包含全文或是节录的文字,再加上发布者所订阅之网摘数据和授权的元数据。

其实就是一种聚合阅读,这样可以用feedly等工具来订阅你喜欢的网站,这样他们的网站更新了之后你就可以通过feedly这种工具来阅读更新的内容,而不用跑到网站上面去查看。

下面介绍下如何在你的Django网站中添加RSS功能,其实很简单:

1、首先建立一个Feed类,这个Feed类提供了源所需要的数据:title,link,description

示例代码如下: 创建feed.py:

from django.contrib.syndication.views import Feed
from blog.models import Article
from django.conf import settings
from django.utils.feedgenerator import Rss201rev2Feed
from DjangoBlog.common_markdown import common_markdown
from django.contrib.auth import get_user_model
from django.contrib.auth.models import User
from django.contrib.sites.models import Site


class DjangoBlogFeed(Feed):
    feed_type = Rss201rev2Feed

    description = settings.SITE_DESCRIPTION
    feed_url = 'https://blog.fkomm.cn/feed'
    title = "%s %s " % (settings.SITE_NAME, settings.SITE_DESCRIPTION)
    link = "https://blog.fkomm.cn"

    def author_name(self):
        return get_user_model().objects.first().nickname

    def author_link(self):
        return get_user_model().objects.first().get_absolute_url()

    def items(self):
        return Article.objects.order_by('-pk')[:5]

    def item_title(self, item):
        return item.title

    def item_description(self, item):
        return common_markdown.get_markdown(item.body)

    def feed_copyright(self):
        # print(Site.objects.get_current().name)
        return "Copyright© 2018  " + settings.SITE_NAME

    def item_link(self, item):
        return item.get_absolute_url()

    def item_guid(self, item):
        return

2、然后在urls.py中添加:

from DjangoBlog.feeds import DjangoBlogFeed


urlpatterns = [
    ......
    url(r'^feed/$',DjangoBlogFeed()),
]

至此,全部完成,可以打开

下面是我网站的RSS

https://www.fkomm.cn/feed/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python爬虫 --- 2.4 Scrapy之天气预报爬虫实践

    写一个真正意义上一个爬虫,并将他爬取到的数据分别保存到txt、json、已经存在的mysql数据库中。

    緣來
  • MySQL常用命令语句(建议收藏)

    緣來
  • 安卓基础干货(五):安卓线程与数据上传下载的学习

    緣來
  • 利用Python实现自动投票以及自动爬虫IP代理

    因为某件事,朋友们在网络上搞起投票行为,为了帮朋友们,特意用python写下了这个投票代码的爬虫

    python学习教程
  • python实现简单的一个刷票点赞功能

    投票网址:http://best.zhaopin.com/?sid=121128100&site=sou

    周小董
  • Sqoop 常用操作

    Sqoop 的lib中缺少Hive 的jar包,从Hive 中找的缺少的jar包到Sqoop中即可

    俺也想起舞
  • SQL Server 每日一题--解析天气预报员

    这道题主要考察 DATEDIFF 的用法, DATEDIFF 主要用于计算两个日期的差。通过题目可知我们可以通过将 weather 与自身相结合,并使用 DAT...

    喵叔
  • JAVA CDI 学习(5) - 如何向RESTFul Service中注入EJB实例

    RESTFul Service中如果要注入EJB实例,常规的@Inject将不起作用,在Jboss中,应用甚至都启动不起来(因为@Inject注入失败),解决方...

    菩提树下的杨过
  • Dubbo + RestEasy 实现文件上传与下载

    原文链接:https://blog.csdn.net/weixin_43057263/article/details/...

    微风-- 轻许--
  • 纯CSS实现响应式表格

    自从转岗至腾讯云后,项目中接触到大量的数据表格。多列数据表格在空间有限的手机屏幕下,难以完美呈现,需要做响应式处理。本文介绍一种使用纯CSS实现响应式表格的方法...

    Jace

扫码关注云+社区

领取腾讯云代金券