Micolog优化(1):添加阅读次数统计功能

五月 10th, 2009 发表评论 阅读评论

Micolog博客系统中没有实现对每篇文章阅读次数的统计,显示浏览量是大多数博客的基本功能,在实现此功能后就能轻松做一个热门文章的列表出来了,自己也好知道哪些文章的点击量比较高,想来这个功能也比较容易实现,本文就把本人的实现过程记录下来了,具体效果可以查看我的博客

(注:我使用的themexuming的主题,如果使用default的话应该也类似)

1)文件:model.py

class Entry(BaseModel):下给Entry添加一个属性:

readtimes = db.IntegerProperty(default=0)

这个就是阅读次数的变量,默认为0。增加这个属性不会对原有的文章造成任何影响,不用担心。

2)文件:blog.py

class SinglePost(BasePublicPage)类的成员函数def get(self,slug=None,postid=None)里面做些修改,找到entry=entries[0],在这一行后添加两行代码:

entry.readtimes += 1

entry.put()

这就是对于每单篇文章请求时做一个累加,之后再保存到数据库中。主要的后台处理就这么多了,确实比较简单吧。下面修改一下前台显示。

3)文件:themes\xuming\templates\index.html

Tropics和评论之前添加一行HTML标签:

阅读({{entry.readtimes}})

这样,在首页的文章列表中就会多了一个阅读次数的信息了。

4)文件:themes\xuming\templates\single.html

后,关键字信息前添加:

{{entry.readtimes}}次阅读 |。就这么简单。

分类: GAE相关 标签: micolog优化  阅读统计  博客  点击数  (1333次阅读)

  1. DCD
    2009-05-16 at 17:17
    LZ,你好,请问一下模板调用代码该怎么写了.另外请问如何实现随机文章.谢谢,小弟不会编程.
  2. 2009-05-16 at 23:47
    模板调用代码在google app engine文档,简介,使用入门,使用模板里有介绍。至于随机文章,只需使用ramdom模块,里面有一些随机函数都适合,比如randint,choice,你不会编程的话我没办法帮你了。
  3. 2009-05-25 at 22:47
    不如加个文章归档,可惜我不会,在这里学习了…
  4. 2009-05-26 at 11:06
    文章归档,我没想过哦,似乎不太必要吧。今天发现在顶部的搜索中,搜索“2009/04"或“2009/05”就能看到当月发布的文章了,挺好
  5. 2009-05-26 at 11:14
    这样也不错啊!
  6. kay
    2009-07-05 at 17:32
    你好,我怎么弄的不行啊,没做第3、4步
    第一步做完,传一次,对的
    第二部做完,传一次,错了,错误如下
    : unexpected indent (blog.py, line 128)

    请教一下,谢谢了
  7. 2009-07-05 at 18:36
    如果是照着做还是错的话,很可能是空格与tab的问题,缩进时空格与tab是不同的,用notapad++等软件可以看出来。本地测试成功再上传。
  8. kay
    2009-07-05 at 22:16
    十分谢谢你啊,就是这么回事
    可是这个东西为什么要用空格呢,要使用notepad++一个回车就成tab了,不是很不方便
  9. kay
    2009-07-05 at 22:43
    还有请问你个问题
    我今天在改css,以前没学过,瞎改的,后来发现不对,然后再用原有的把以前的给覆盖
    结果就变了样子,再也变不回来了,请教一下,呵呵,谢谢了
    http://kayblog09.appspot.com/
  10. kay
    2009-07-05 at 22:44
    对了,在chrome下显示不正常,在IE7下显示正常,怎么回事呢
  11. kay
    2009-07-05 at 23:01
    呵呵,原来是缓存的事,解决了,麻烦了
  12. sp
    2009-07-12 at 19:01
    徐明的博客用了缓存,每刷新一次文章就对数据一次写操作,如果一个访问量很大的博客,会消耗很多cpu,这可能是他没有加入的原因,还用了大量的缓存
  13. 2009-07-12 at 22:39
    @sp:我的博客访问量不大,所以无所谓了。如果cpu不够用了,再把这功能去掉吧