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

使用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加上两个简单的模板。都去参考文档看吧 :)

 

标签:python django rss 

评论(2条)

杰夫 在2007-09-13说:RSS图标大汇集

在网上找RSS图标的时候,发现很在趣的东西。

http://angelived.org/2007/05/02/rssicon-da/ (大的RSS图标)留意有小图标的另一篇。还可以找所有的图标下回来。Fallever只是没有在里面选用,只是用了最常见的一个。也是最土的一个。



(可不填)



 = 

站内搜索

作者简介

jeff

OK Computer!

mail
qq

订阅我

我看我听我读

都有谁评论鸟

Tags

日志分类

友情连接

Power By