今天在用Google Webmaster功能时,发现上面有个订阅数的栏目,我的是0,呵呵,很显然,因为我的博客还没有rss嘛,于是就想着搞一个。
当想到这个问题时,我想到的是要去学xml!呵呵,我都准备去找python基础教程去了。现在想想,rss的实现应该有两种方式:
1.每次更新生成静态的rss.xml文件,这样可以减小服务器压力,但是要去考虑如何生成并写入xml文件。
2.用url映射/feed这样可以动态生成,不用手动更新,不用写文件,只用动数据库就好了,但是要每次请求都要读数据库,文章多了会不会有性能问题,可以设置限制,比如说30篇。
我还是看看别人怎么实现的吧,上次写那个Getsvn就是为了下载一个博客的源码,我去看了下,是后者,但是怎样生成返回xml格式呢?原来和普通网页一样啊,用模板,我的模板是这样的:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[{{blog.title}}]]></title>
<description><![CDATA[{{blog.description}}]]></description>
<script type="text/javascript" src="//static.lerry.me/django-blog/static/scripts/shCore.js"></script>
<script type="text/javascript" src="//static.lerry.me/django-blog/static/scripts/shBrushPython.js"></script>
<link type="text/css" rel="stylesheet" href="//static.lerry.me/django-blog/static/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.all();</script>
<link>http://lerry.org</link>
{% for post in posts %}
<item>
<title><![CDATA[{{post.title}}]]></title>
<link>http://lerry.org{{post.url}}</link>
<pubDate><![CDATA[{{post.post_time[0:19]}}]]></pubDate>
<description>
<![CDATA[ 作者保留一切权利,转载请注明链接:http://lerry.org{{post.url}}
<content>{{post.content}}</content>
]]>
</description>
</item>
{% endfor %}
</channel>
</rss>
```