臭蛋聚是一个RSS聚合器,构建在Google App Engine上的,写的这个小应用是用来取代原有的feed.yibin001.com(和谐了)。
有段时间没写gae的小应用了,刚开始时还显得有点陌生,在此期间也遇到一些小问题,在这里一并写出来,希望对初次开发gae应用的朋友有一个帮助。
- gae datastore,在gae中,所有Gql的排序字段都是需要建索引的,否则会出现经典的”NeedIndexError: no matching index found.”错误,附在错误后面的信息就是需要建立的索引,你可以复制下来,然后粘帖到index.yaml文件,并上传。上传后并不能马上使用,gae需要一个build的过程,这个时间长短要看数据量的大小,索引状态变成Serving时就意味着索引已创建成功。
- Gql查询结果排序问题。排序的字段要有值,不能为None,否则结果集可能不是你所需要的。如:SELECT * FROM Feeds ORDER BY LastPubDate DESC,如果此时的LastPubDate都没有值,即使有10条数据,这条查询无法返回记录的。
- 对于GMT(rfc822)时间格式的解析。按rss标准,PubDate正确格式应该是Sat, 20 Feb 2010 07:04:52 +0000,直接用datetime模块解析不是很方便,可以用rfc822模块中的parsedate_tz函数进行转换。对于非标准GMT(rfc822)格式的时间,只能配合正则进行解析。
最后,臭蛋聚的地址为:http://rss4py.appspot.com/




