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中序列与字典的相同和不同之处
Jan 19 Python
python编码最佳实践之总结
Feb 14 Python
python 写入csv乱码问题解决方法
Oct 23 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
python去除字符串中的换行符
Oct 11 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
python3.5绘制随机漫步图
Aug 27 Python
python 直接赋值和copy的区别详解
Aug 07 Python
Python传递参数的多种方式(小结)
Sep 18 Python
基于Python爬取素材网站音频文件
Oct 21 Python
Python的logging模块基本用法
Dec 24 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
基于PHP异步执行的常用方式详解
2013/06/03 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
js 省地市级联选择
2010/02/07 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
解读! Python在人工智能中的作用
2017/11/14 Python
Django的分页器实例(paginator)
2017/12/01 Python
python re模块findall()函数实例解析
2018/01/19 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
工程造价自荐信
2013/10/09 职场文书
国际经济贸易专业推荐信
2013/11/06 职场文书
演讲稿开场白台词
2014/08/25 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang