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 paramiko实现ssh远程访问的方法
Dec 03 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
Python实现的计算器功能示例
Apr 26 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
简单了解Django项目应用创建过程
Jul 06 Python
python数据可视化JupyterLab实用扩展程序Mito
Nov 20 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
相对路径转化成绝对路径
2007/04/10 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
vue组件中的数据传递方法
2018/05/14 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
python连接mysql调用存储过程示例
2014/03/05 Python
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python递归计算N!的方法
2015/05/05 Python
python内置数据类型之列表操作
2018/11/12 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
Python理解递归的方法总结
2019/01/28 Python
python协程之动态添加任务的方法
2019/02/19 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
python 用struct模块解决黏包问题
2020/11/07 Python
高中军训感言1000字
2014/03/01 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
党课主持词大全
2015/06/30 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
离婚财产分割协议书
2015/08/11 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
mysql多表查询-笔记七
2021/04/05 MySQL
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
python中validators库的使用方法详解
2022/09/23 Python