您还没有登录。现在登录注册

使用Django生成RSS

分类: 编程   |   jeff  发表于:2007-09-13 02:01:58  |   2条评论  |

感谢Django强大的syndication feed framework,我可以很轻松地实现RSS的生成工作。Fallever的RSS可以从每个Blog的右下角找到。Django的官方文档见这里。文档中的第一个Example并不适合我,Fallever现在的情况是提供每个Blogger一个RSS文件,因此需要传参数,情况比较类似“A complex example”那一段。

使用Django的SFF来生成RSS太简单了。有下面几个步骤:

一、配置URLConf:

(r'^feeds/(?P.*)/rss.xml$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds})

URL表达式中,url参数实际上允许很多个“/”存在。在Fallever中的用法是:/feeds/blog/{{shortcut}}/rss.xml.那么Django会把“feeds/”后面那一大截当作URL的参数传进去生成的机器(姑且这样叫吧),Shortcut是代表一个Blog的简称。注意,"feeds/"作为RSS路径的开头是必须的。

二、写feeds。

你已经留意到了URLConf里面的第三个参数吧。feeds是一个字典,Key是Feed的类型,Value是处理该类型的类。Fallever的第一个字典是:

feeds = {'blog':recent_blog_entry}

这个字典说“feeds/”后面凡是跟着blog字样的路径全由recent_blog_entry这个类来处理。在blog后面跟着的参数从哪里可以找回来呢,我一开始就有这样的问题,原来在这里:重写Feeds类的get_object(self, bits):bits参数就是把blog后面的参数切成了数组,如/feeds/blog/jeff/rss.xml切割后bits参数是:['jeff','rss.xml']在这里我们只需要拿我们有用的元素就可以了。rss.xml这一节东西我是用来哄IE的。

三、在recent_blog_entry类里重写Feeds的几个方法:title,link,description,items,items_link。具体的在这里不说了,还有需要为这一次的Feed加上两个简单的模板。都去参考文档看吧 :)

 

站内搜索

作者简介

jeff

OK Computer!

mail
qq

订阅我

我看我听我读

都有谁评论鸟

Tags

python 音乐 朋友 工作 django java 旅游 生活 丽江 云南 编程 google 2008 中国 年假 摇滚 javascript ajax grails 部署 apache air 学习 卖唱 lucene 技术 体验 发呆 flex 灾害 乐队 plone 灾难 哀悼日 开源 jmesa jquery flash ext web 健康 全文搜索 电影 sql 感情 orm 诗歌 数据库 计划 开发 原创 更新 空间 休假 life 许巍 杭州 鼻炎 moin 真诚 人生 感悟 感性 信息 设计 需求 ria 遇窃 香格里拉 大理 管理 算法 cms nuexo zope 左小诅咒 汉诺塔 AMF prototpye 快速开发 actionscript beautifulSoup 递归 网络 opensource 结婚 捐赠 scrum 软件过程 demo wiki 西片 英伦 中间件 erlang 并发 函数式编程 中文分词 模板 分页 成功 pagerank hibernate 日志 MYMeditor 恐怖 惊变 mysql rss 文艺片 太阳 彩色 factcgi lighttpd editor 中文 个性化 秋天 暴力 美学 声音玩具 独立 备份 数据 琐事 博客 接口 设计模式 地下 广州 dvd 互联网 json 事业 职业 读书 香港 澳门 忧郁 冬天 compass 图表

日志分类

友情连接

Power By