google appengine中的计数器
来源:互联网 发布:程序员的发展前景 编辑:程序博客网 时间:2024/05/21 19:35
今天为我的小站添加了一个计数器功能,实现起来也比较简单,不过由于Google App Engine的环境与一般的服务器端编程不同,在传统的ASP,PHP,JSP中,可以通过Application对象或者类似的对象时间全局变量,但Goolge App Engine不存在该类变量,放在缓存中也是不可行的,因为Google App Engine的缓存4-5小时就刷新一次,如果用缓存,过几个小时我小站的访问量就归零了,这怎么行呢? 各位看官大概都看明白了吧,其实想要用计数器,只需要在需要调用的地方放上一句count = getCounter()就OK了,我使用的是Google AppEngine自带的webapp模板,主页中的调用如下:
相应的模板为:
无意中尝试,居然发现Google提供的Data Index中居然可以提供类似于数据库编辑器的功能。贴图如下:
如图所示,使用该功能可以很容易的通过GQL修改数据,对计数器来说,清零是很easy的了。点击看大图,不会贴图啊,请大家原谅
我写的计数器是基于数据库的,在GAE里面就是BigTable了,相信大家也明白怎么回事了吧,不多说了,直接贴代码。
- #计数器部分
- class Counter(db.Model):
- count = db.IntegerProperty()
- def getCounter():
- q = db.GqlQuery("select * from Counter")
- counter = q.get()
- if not counter:
- counter = Counter()
- counter.count = 0
- counter.put()
- counter = q.get()
- #返回值
- result = counter.count + 1
- counter.count += 1
- counter.put()
- return(result)
- class MainPage(webapp.RequestHandler):
- def get(self):
- count = getCounter()
- template_values = {
- "count" : count
- }
- path = os.path.join(os.path.dirname(__file__), __INDEX__)
- self.response.out.write(template.render(path, template_values))
- <li class="strong"><!--计数器-->访问量:{{ count }}</li>
如图所示,使用该功能可以很容易的通过GQL修改数据,对计数器来说,清零是很easy的了。点击看大图,不会贴图啊,请大家原谅
- google appengine中的计数器
- Python在Google AppEngine中的模块引入问题
- Google AppEngine收费方案
- Google AppEngine 简单学习
- Google AppEngine的简单学习
- appengine
- Appengine中的JSON序列化
- google appengine的数据存储API
- 在GAE(google appengine)中应用sitemesh
- Google Appengine开发碰到DatastoreNeedIndexException了
- Google Appengine 使用JSTL的问题
- Google AppEngine 和 NetBeans ... 和 Mojarra / JSF
- Google AppEngine vs. Amazon EC2/S3
- google appengine 上试用 web.py 笔记
- 并修改Google AppEngine + Eclipse + PyDev
- 网络应用自建利器-Google AppEngine
- 在Google AppEngine中进行Asynchronous URLFetch
- Google AppEngine上部署PHP应用
- oracle 配置监听器listener及net service
- 怎么处理ADD-ON在程序中占的内存大的问题
- 即将过去的2008年
- Java编程那些事儿16——代码框架、关键字和标识符
- [转]C#获取当前路径的方法集合
- google appengine中的计数器
- 推荐一本介绍linux调试方法的书
- 修复explorer.exe遇到问题需要关闭
- 关于sparkweb
- JQuery帮助文档
- IE浏览器中一些问题就解决方案
- getColumnLabel VS getColumnName
- sd
- 将XML存入关系数据库