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执行系统命令的常见方法(全)
Oct 22 Python
python监控文件并且发送告警邮件
Jun 21 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
Django框架请求生命周期实现原理
Nov 13 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
利用python调用摄像头的实例分析
Jun 07 Python
Python操作CSV格式文件的方法大全
Jul 15 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输出时间格式
2013/08/31 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
vue-resourc发起异步请求的方法
2020/02/11 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
js代码编写无缝轮播图
2020/09/13 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
Python break语句详解
2014/03/11 Python
浅谈django的render函数的参数问题
2018/10/16 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Python解析微信dat文件的方法
2020/11/30 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
实习求职信
2013/12/01 职场文书
班级入场式解说词
2014/02/01 职场文书
财务管理专业求职信
2014/06/11 职场文书
学校宣传标语
2014/06/18 职场文书
毕业实习证明范本
2015/06/16 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers