Django添加feeds功能的示例

概念: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()),
]

至此,全部完成,可以打开

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 使用grappelli为django admin后台添加模板

    grappelli是github上面star最多的django模板系统 http://django-grappelli.readthedocs.org/en/latest/quickstart.html#installation 复制代码 代码如下: pip install django-grappelli settings.py INSTALLED_APPS = (     'grappelli',     'django.contrib.admin', ) 添加url项 复制代码 代码如下:

  • Django添加sitemap的方法示例

    sitemap是 Google 最先引入的网站地图协议,采用 XML 格式,它的作用简而言之就是优化搜索引擎的索引效率,详细的解释可以参考百度百科 . 下面介绍下如何为Django站点添加sitemap功能. 1.启用sitemap 在django的settings.py的INSTALLED_APPS中添加 'django.contrib.sites', 'django.contrib.sitemaps', 然后migrate数据库: $ ./manage.py makemigrations $

  • 使用django-suit为django 1.7 admin后台添加模板

    django-grappelli里面使用inline似乎有点儿问题,换一个皮: django-suit是2scoops推荐的第二个admin skin. Supports: Django 1.4-1.7. Python: 2.6-3. 本文的环境是django 1.7.1 django-suit官网 安装指导链接 设置攻略 翻译搬运如下: 安装 复制代码 代码如下: pip install django-suit # settings.py from django.conf.global_set

  • Django添加favicon.ico图标的示例代码

    所谓favicon,即Favorites Icon的缩写,让浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站. 默认情况下,浏览器访问一个网站的时候,同时还会向服务器请求"/favicon.ico"这个URL,目的是获取网站的图标. 若是没有配置的话,Django就会返回一个404错误,并且浏览器接收到这个404错误后不会显示出来,一般不会被察觉. 但是服务器要是开启日志记录的话,这错误就会一直记录下来,累积一大堆无用的记录. 添加favicon.ico图标的方法有两种

  • Django1.3添加app提示模块不存在的解决方法

    使用Django添加应用的时候,一直提示Error: No module named myapp.意思是找不到这个名字的应用,可是我已经startapp成功,并且系统已经创建相应的目录 复制代码 代码如下: D:\Python27\Scripts\website>python manage.py syncdb Error: No module named myapp 难道官方的文档有错,我manage.py startapp myapp已经成功,并且已经创建目录与文件. 并在settings.p

  • 给Python的Django框架下搭建的BLOG添加RSS功能的教程

    前些天有位网友建议我在博客中添加RSS订阅功能,觉得挺好,所以自己抽空看了一下如何在Django中添加RSS功能,发现使用Django中的syndication feed framework很容易实现. 具体实现步骤和代码如下:     1.Feed类 # -*- coding: utf-8 -*- from django.conf import settings from django.contrib.syndication.views import Feed from django.util

  • 利用django-suit模板添加自定义的菜单、页面及设置访问权限

    前言 本文主要给大家介绍了利用django-suit模板在管理后台添加自定义的菜单和自定义的页面.设置访问权限的相关内容,分享出来供大家参考学习,下面话不多说了,来随着小编一起看看详细的介绍吧  方法如下: 1.先在settings.py里面的SUIT_CONFIG中添加配置,我们平时添加的配置都是app类型的,我们需要自定义页面的话,就不能用app了,需要用url,这里面我们使用如下: # django-suit config SUIT_CONFIG = { 'ADMIN_NAME': 'X·

  • Django添加feeds功能的示例

    概念:RSS和Atom都是基于XML的格式,你可以用它来提供有关你站点内容的自动更新的feed.了解更多关于RSS的可以访问 http://www.whatisrss.com/ , 更多Atom的信息可以访问 http://www.atomenabled.org/ . RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章.新闻.音频或视频的网摘.RSS文件(或称做摘要.网络摘要.或频更新,提供到频道)包含全文或是节录的文字,再加上发布者所订阅之网摘数据和授权

  • Django 实现购物车功能的示例代码

    购物车思路:使用 session 功能识别不同浏览器用户,使得用户不管是否登录了网站,均能够把想要购买的产品放在某个地方,之后随时可以显示或修改要购买的产品,等确定了之后再下订单,购物车可以用来暂存商品. 我们可以使用 session 为每一个用户创建一个 ID,然后以这个 ID 作为创建每一个购物车的依据.这个购物车在用户浏览过程中会保留数据,一直到实际完成下单,用户执行清除,或者关闭浏览器为止,当然,退出登录的话购物车内容也会消失不见. 在 settings.py 文件中加入下列语句,表示要

  • VUE饿了么树形控件添加增删改功能的示例代码

    本文介绍了VUE饿了么树形控件添加增删改功能的示例代码,分享给大家,具体如下: element-ui树形控件:地址 在原文档中有个案例是有新增和删除功能,但是后来发现其修改的数据并不能直接影响到树形数据,所以采用了 render-content 的API重新写了个组件. 写个开发的步骤,所以文章比较长emmm 大致效果如图: 1.省市API 在网上复制了个省市的list,有两个属性是新增的 isEdit :控制编辑状态 maxexpandId :为现下id的最大值 export default{

  • 如何在django中添加日志功能

    官方文档 猛戳这里 在settings中配置以下代码 #LOGGING_DIR 日志文件存放目录 LOGGING_DIR = "logs" # 日志存放路径 if not os.path.exists(LOGGING_DIR): os.mkdir(LOGGING_DIR) import logging LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { #格式化器 'standard'

  • Django 实现下载文件功能的示例

    基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django提供下载功能,如页面数据导出功能(下载动态生成的文件).先检查用户权限再下载文件等.因此,有必要研究一下文件下载功能在Django中的实现. 最简单的文件下载功能的实现 将文件流放入HttpResponse对象即可,如: def file_download(request): # do something... with open('file_na

  • PHP+Ajax实现的博客文章添加类别功能示例

    本文实例讲述了PHP+Ajax实现的博客文章添加类别功能.分享给大家供大家参考,具体如下: 一. 代码 fun.js function saveType(typename, username){ if(typename==''){ //判断博客类别是否为空 alert('请输入类别名称!'); }else if(username==''){ //判断用户名是否为空 alert('请输入用户名!'); }else{ var xmlObj; //定义XMLHttpRequest对象 var urlD

  • Yii2框架实现登陆添加验证码功能示例

    本文实例讲述了Yii2框架实现登陆添加验证码功能.分享给大家供大家参考,具体如下: models中 LoginForm.php public $verifyCode; public function rules() { return [ -- ['verifyCode', 'captcha', 'on' => 'login'], //验证码 ]; } public function scenarios() { $scenarios = parent::scenarios(); $scenario

  • JS/jQuery实现超简单的Table表格添加,删除行功能示例

    本文实例讲述了JS/jQuery实现超简单的Table表格添加,删除行功能.分享给大家供大家参考,具体如下: 最近需要表格添加删除行,添加行简单,删除行就有点儿懵逼了,于是网上找实例,功夫不负有心人,终于让我找到了,下面的是代码,大家觉得可以,记得点赞哦!!!谢谢! 需要的拿去,转载请在明显的位置标注出出处!!! <html> <head> <title>table添加/删除行</title> </head> <body> <t

随机推荐