Django添加feeds功能的示例


Posted in Python onAugust 07, 2018

概念: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://www.fkomm.cn/feed'
  title = "%s %s " % (settings.SITE_NAME, settings.SITE_DESCRIPTION)
  link = "https://www.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()),
]

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python打开网页和暂停实例
Sep 30 Python
python保存字符串到文件的方法
Jul 01 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
pycharm新建一个python工程步骤
Jul 16 Python
python代码编写计算器小程序
Mar 30 Python
python DataFrame转dict字典过程详解
Dec 26 Python
python软件都是免费的吗
Jun 18 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
python爬虫爬取图片的简单代码
Jan 18 Python
让文件路径提取变得更简单的Python Path库
May 27 Python
Python下opencv库的安装过程及问题汇总
Jun 11 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
Aug 07 #Python
Django添加favicon.ico图标的示例代码
Aug 07 #Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 #Python
Python装饰器模式定义与用法分析
Aug 06 #Python
Python实现的建造者模式示例
Aug 06 #Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 #Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 #Python
You might like
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
JavaScript 实现??打印?理
2007/04/28 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
Python写的英文字符大小写转换代码示例
2015/03/06 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
python opencv之分水岭算法示例
2018/02/24 Python
python验证身份证信息实例代码
2019/05/06 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
商务英语专业应届毕业生求职信
2013/10/28 职场文书
置业顾问岗位职责
2014/03/02 职场文书
幼儿园春季开学寄语
2014/04/03 职场文书
市场拓展计划书
2014/05/03 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
员工辞职信范文大全
2015/05/12 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
HTML中的表格元素介绍
2022/02/28 HTML / CSS