在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,例如:

Gmail高级搜索技巧

标签:Gmail

发现篇不错的文章,以前还不知道有这些功能=。=
转自:http://fairyfish.net/2009/02/25/gmail-advanced-search/

Gmail 强大用户的体验和各种前瞻性的实验性功能,已经让它成为了我和很多朋友的主要邮箱。Gmail 作为 Webmail,其搜索快捷和方便是优点之一,但是平时在使用 Gmail 搜索的时候,经常找不到相应的邮件,虽然它有高级搜索的选项,但是每次都需要多点击一次才能使用,所以掌握一些 Gmail 高级搜索语法,对提高工作效率还是有非常大的帮助的,我这里介绍下我常用的几个 Gmail 高级搜索语法:

Gmail挂了

标签:Gmail

下班前把汉化资料放Gmail里,回家准备下载,却怎么都打不开Gmail。

还以为是我的网络问题,重启了路由器,换了3个浏览器,最终出现了这个页面:

在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函数里进行的,所以这点基本符合。)

« 看看还有什么好玩意