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编写简单文件夹内图片浏览工具
Aug 17 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
Python语言的变量认识及操作方法
Feb 11 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
python实现指定ip端口扫描方式
Dec 17 Python
Pytorch之卷积层的使用详解
Dec 31 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
Python中的整除和取模实例
Jun 03 Python
python实现单机五子棋
Aug 28 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 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使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
node.js基础知识小结
2018/02/26 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
TensorFlow实现卷积神经网络
2018/05/24 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
python  logging日志打印过程解析
2019/10/22 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
文员转正自我鉴定怎么写
2014/09/29 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
2015元旦感言
2015/12/09 职场文书
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android