本站推出山寨版四六级查分服务(附源码)

标签:JavaScript, PHP, Python

首先不得不批一下99宿舍,丫的查个分还弄广告,还有30秒限制。采访时还说那30秒限制是为了避免查询量过大…
丫的我去看了下它的JavaScript,点击查询时,很快就拿到数据了,却到30秒才显示,这也叫避免查询量过大?真要这么做的话,应该在30秒后才查询。
至于看不懂JavaScript的,查询后在浏览器地址栏输入这行命令,就能显示分数了:
javascript:alert(score);

在GAE的数据库中实现多对多的关系

标签:Google App Engine, Python

本文的思路和方法来自:
英文版:http://code.google.com/appengine/articles/modeling.html
中文版:http://www.cnblogs.com/kuber/archive/2008/08/19/ModelingEntityRelationshipsInGAE.html
大部分内容来自这个简单的版本:
http://www.zhlwish.com/blog/diary/agd6aGx3aXNocgwLEgVEaWFyeRiZEQw/

之前我曾写了如何实现一对一和一对多关系,方法就是使用db.ReferenceProperty,例如:

在Google App Engine中使用304 Not Modified状态码来提速

标签:Google App Engine, Python

最近用GAE做了个图像上传的站点,为了提升速度,我在服务器端采用了缓存技术,但这并未榨干GAE的最后一点能量。
实际上,由于我的图片是不会改变内容的,所以如果强制让客户端浏览器也缓存的话,就能减少很多流量,且不用访问缓存和数据库了。

在GAE中使用记录系统

标签:Google App Engine, Python

在GAE中可以使用Python的标准模块logging,而且记录是可以直接在GAE的后台看到的,非常方便。
这里有篇讲述如何在GAE中使用记录系统的文章

先简单介绍下logging。
logging中有6个级别的事件记录:CRITICAL、ERROR、WARNING、INFO、DEBUG和NOTSET。
其中前5个分别用critical、error、warning、info和debug函数来记录。

因为使用非常简单,我就直接给演示代码了。

Google App Engine的模块和Handler Script缓存

标签:Google App Engine, Python

正如GAE文档中所述,GAE会缓存一些模块和Handler Script,避免每个request都重新载入。

这里有篇《Google App Engine 对 module 的缓存时间》,你可以看到模块是怎么被缓存的。

要让Handler Script被缓存,需要为这个Handler Script定义一个无参的main函数,并且请求必须要调用这个main函数。(一般来说,我们的应用程序都是先在main函数里进行的,所以这点基本符合。)

在Google App Engine中实现URL伪静态

标签:Google App Engine, Python

在Apache和IIS等Web服务器上,实现伪静态是通过URL重写的方式;但在GAE中方式则不同,需要你在Python代码中实现,不过因此也更为强大和简单。

先来看看伪静态有什么用:
这是一个动态页面:
http://www.keakon.cn/bbs/viewthread.php?tid=35&page=100
这是一个伪静态后的动态页面:
http://www.keakon.cn/bbs/thread-35-100-1.html
这2个页面都是一样的,不过下面的网址明显要短些,而且更符合搜索引擎的“口味”。
它的实现是用URL重写的方式,把thread-开头的链接让viewthread.php来处理,并将后面的2个数字赋值给tid和page。
至于这2个值的获取,在PHP中是通过$_GET这个全局变量来获取的。

« 看看还有什么好玩意