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删除windows垃圾文件的方法
Jul 14 Python
Python BS4库的安装与使用详解
Aug 08 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
python实现小球弹跳效果
May 10 Python
python读写文件write和flush的实现方式
Feb 21 Python
如何在Python 游戏中模拟引力
Mar 27 Python
Python Django搭建网站流程图解
Jun 13 Python
Python必须了解的35个关键词
Jul 16 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 Python
Python3中对json格式数据的分析处理
Jan 28 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之数据库操作详解及乱码解决!
2007/01/02 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
PHP7 弃用功能
2021/03/09 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
HTML的select控件美化
2017/03/27 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
python采用getopt解析命令行输入参数实例
2014/09/30 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Python猴子补丁知识点总结
2020/01/05 Python
Python range与enumerate函数区别解析
2020/02/28 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
出国考察邀请函
2014/01/21 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
工程建设实施方案
2014/03/14 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
戒赌保证书
2015/05/11 职场文书
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫
MySQL创建管理LIST分区
2022/04/13 MySQL