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

前些天有位网友建议我在博客中添加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.utils.feedgenerator import Rss201rev2Feed

from blog.models import Article
from .constants import SYNC_STATUS

class ExtendedRSSFeed(Rss201rev2Feed):
 mime_type = 'application/xml'
 """
 Create a type of RSS feed that has content:encoded elements.
 """
 def root_attributes(self):
  attrs = super(ExtendedRSSFeed, self).root_attributes()
  attrs['xmlns:content'] = 'http://purl.org/rss/1.0/modules/content/'
  return attrs

 def add_item_elements(self, handler, item):
  super(ExtendedRSSFeed, self).add_item_elements(handler, item)
  handler.addQuickElement(u'content:encoded', item['content_encoded'])

class LatestArticleFeed(Feed):
 feed_type = ExtendedRSSFeed

 title = settings.WEBSITE_NAME
 link = settings.WEBSITE_URL
 author = settings.WEBSITE_NAME
 description = settings.WEBSITE_DESC + u"关注python、django、vim、linux、web开发和互联网"

 def items(self):
  return Article.objects.filter(hided=False, published=True, sync_status=SYNC_STATUS.SYNCED).order_by('-publish_date')[:10]

 def item_extra_kwargs(self, item):
  return {'content_encoded': self.item_content_encoded(item)}

 def item_title(self, item):
  return item.title

 # item_link is only needed if NewsItem has no get_absolute_url method.
 def item_link(self, item):
  return '/article/%s/' % item.slug

 def item_description(self, item):
  return item.description

 def item_author_name(self, item):
  return item.creator.get_full_name()

 def item_pubdate(self, item):
  return item.publish_date

 def item_content_encoded(self, item):
  return item.content

    2、URL配置

from django import VERSION

if VERSION[0: 2] > (1, 3):
 from django.conf.urls import patterns, include, url
else:
 from django.conf.urls.defaults import patterns, include, url
from .feeds import LatestArticleFeed

urlpatterns = patterns(
 '',
 url(r'^feed/$', LatestArticleFeed()),
)

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
django
django框架搭建、python django框架、python web框架django、python的django框架、python django 搭建,以便于您获取更多的相关知识。

时间: 2024-08-26 00:28:41

给Python的Django框架下搭建的BLOG添加RSS功能的教程_python的相关文章

Python中Django框架下的staticfiles使用简介

  这篇文章主要介绍了Python中Django框架下的staticfiles使用简介,staticfiles是一个帮助Django管理静态资源的工具,需要的朋友可以参考下 django1.3新加入了一个静态资源管理的app,django.contrib.staticfiles.在以往的django版本中,静态资源的管理一向都是个问题.部分app发布的时候会带上静态资源文件,在部署的时候你必须手动从各个app中将这些静态资源文件复制到同一个static目录.在引入staticfiles后,你只需

在Python的Django框架下使用django-tagging的教程

  这篇文章主要介绍了在Python的Django框架下使用django-tagging的教程,针对网络编程中的tag部分功能提供帮助,需要的朋友可以参考下 django使用app机制来实现组件的重用,充分的利用已有的app可以极大的简化开发工作.目前django下的app虽然还不够丰富,却也还是有部分不错的.django-tagging就是一个不错的app. 现在tag的应用非常广泛,tag基本上成了各网站的必备项目之一,django-tagging就是一个提供tag功能的app.django

全面剖析Python的Django框架中的项目部署技巧第1/2页_python

项目开始时是一个关键时刻,选择会对项目产生长期的影响.有很多关于如何开始使用Django框架的教程,但很少讨论如何专业地使用Django,或如何使用行业公认的最佳做法来确保你的项目规模的持续增长.事前的筹划让你(和所有同事的生活)在走向将来时更容易. 文章结束时,你将有     一个全功能的Django 1.6项目     源代码受控的所有资源(使用Git或Mercurial)     自动回归和单元测试(使用unittest库)     一个独立于特定环境的安装项目(使用virtualenv)

python中django框架通过正则搜索页面上email地址的方法_python

本文实例讲述了python中django框架通过正则搜索页面上email地址的方法.分享给大家供大家参考.具体实现方法如下: import re from django.shortcuts import render from pattern.web import URL, DOM, abs, find_urls def index(request): """ find email addresses in requested url or contact page &quo

在Python的Django框架中实现Hacker News的一些功能_python

逐步指示 这是提供给更喜欢阅读的人的视频文本版本.我们将创建一个类似黑客新闻 或Reddit的社交新闻网站.它将被称为"钢铁传闻",作为一个分享关于"钢铁侠"的有趣传闻和对其进行投票的地方. 屏幕录像第一部分的概述:     目标     虚拟环境- 从零开始!     模型管理 - 梦想的工作 #78     基本的模板     通用视图 - 新闻列表视图和 新闻细节视图     分页-免费!! 设置虚拟环境     我们将用virtualenv 和 virtua

用Python的Django框架编写从Google Adsense中获得报表的应用_python

 我完成了更新我们在 Neutron的实时收入统计.在我花了一周的时间完成并且更新了我们的PHP脚本之后,我最终认决定开始使用Python进行抓取,这是值得我去花费我的时间和精力的事情.我建立了一个 Django程序,它可以从不同的来源存储收入统计,我可以用这些去简历视图和用于统计工具的API. 所以在过去的几天里,我写了一个脚本,它可以登入到其他的网页并抓取数据,或者,如果这些网页有 API,可以直接访问 API.我发现了一些事情. 1.requests >httplib2(requests多

Python的Django框架中的select_related函数对QuerySet 查询的优化_python

1. 实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: from django.db import models class Province(models.Model): name = models.CharField(max_length=10) def __unicode__(self): return self.name class City(models.Model): name = models

搭建Python的Django框架环境并建立和运行第一个App的教程_python

Django是python中目前风靡的Web Framework, 那么什么叫做Framework呢, 框架能够帮助你把程序的整体架构搭建好, 而我们所需要做的工作就是填写逻辑, 而框架能够在合适的时候调用你写的逻辑, 而不需要我们自己去调用逻辑, 让Web开发变的更敏捷. Django是一个高级Python Web框架, 鼓励快速,简洁, 以程序设计的思想进行开发. 通过使用这个框架, 可以减少很多开发麻烦, 使你更专注于编写自己的app, 而不需要重复造轮子. Django免费并且开源.Dj

使用Python装饰器在Django框架下去除冗余代码的教程_python

 Python装饰器是一个消除冗余的强大工具.随着将功能模块化为大小合适的方法,即使是最复杂的工作流,装饰器也能使它变成简洁的功能. 例如让我们看看Django web框架,该框架处理请求的方法接收一个方法对象,返回一个响应对象:   def handle_request(request): return HttpResponse("Hello, World") 我最近遇到一个案例,需要编写几个满足下述条件的api方法:     返回json响应     如果是GET请求,那么返回错误