在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这个全局变量来获取的。

在Google App Engine中使用缓存

标签:Google App Engine, Python

由于GAE的数据库很慢,所以当需要一些更快速的持久性存取操作时,数据库就显得力不从心了。
好在Google也考虑到这个问题,提供了Memcache API来解决性能问题。方法就是把经常使用的、在数据库中查询比较耗时的数据放在内存中缓存起来,然后直接访问内存即可。

在Google App Engine中操作图像

标签:Google App Engine, Python

操作图像大概是Google App Engine中最有趣的功能了。
由于GAE不允许浏览者上传文件到服务器,所以存放到数据库就成了不二选择。可喜的是,如果你只是存储和显示图片,甚至连图像API都不需要用到,直接当成db.Blob类型的数据来使用即可。而且由于Google的慷慨,数据库空间是不限的,你可以在数据库中存放任意大小的文件(不过有流量限制)。

本站推出免费图像永久外链服务

标签:Google App Engine

更新:本服务已被GFW。

网址:
http://keakon.appspot.com/image

说明:
该站采用Google App Engine打造,采用了分布式网络及缓存技术,以提升图片载入速度。
图像空间不限,每天约可提供100万次浏览及10GB流量,每天可上传500MB图像。
只要不上传含敏感内容的图像,我一般是不会删除的。

在Google App Engine中使用数据库

标签:Google App Engine, Python

Google App Engine的教程终于来到了数据库部分。这是GAE最有用、最复杂,也是限制最多的地方。
阅读本文需要您懂一般的数据库使用。

废话少说,先给参考文档:
官方文档(英文):http://code.google.com/appengine/docs/python/datastore/
中文翻译(部分,版本较老,与官方文档不同步):
http://blog.csdn.net/lobby/category/400740.aspx
http://blog.csdn.net/jj_liuxin/archive/2008/12/28/3630281.aspx

注意:本文已很久未更新了,一切以Google App Engine官方文档为准,这里仅供参考。

« 看看还有什么好玩意