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生成器表达式和列表解析
Mar 10 Python
Python中对象的引用与复制代码示例
Dec 04 Python
如何在python中使用selenium的示例
Dec 26 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
一看就懂得Python的math模块
Oct 21 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
Dec 05 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
Jun 27 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
python实现按关键字筛选日志文件
Dec 24 Python
Pytorch之parameters的使用
Dec 31 Python
Python 实现自动获取种子磁力链接方式
Jan 16 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+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
django 实现简单的插入视频
2020/04/07 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
怎么写有吸引力的自荐信
2013/11/17 职场文书
大学生个人推荐信范文
2013/11/25 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
音乐节策划方案
2014/06/09 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
公司管理制度范本
2015/08/03 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL