2009 2 21 03:39 PM 17677 次查看
分类:Python 标签:Python, JavaScript
这个需求最初是因为在《Google App Engine中使用304 Not Modified状态码来提速》这篇帖中需要解析HTTP头中的时间格式。如果用正则表达式就太麻烦了,所以就翻了翻Python文档。
先看如何将datetime类型转换成HTTP头所用的GMT时间格式的字符串(如'Thu, 19 Feb 2009 16:00:07 GMT'):
2009 2 21 01:43 AM 3852 次查看
分类:Google App Engine 标签:Google App Engine, Python
最近用GAE做了个图像上传的站点,为了提升速度,我在服务器端采用了缓存技术,但这并未榨干GAE的最后一点能量。
实际上,由于我的图片是不会改变内容的,所以如果强制让客户端浏览器也缓存的话,就能减少很多流量,且不用访问缓存和数据库了。
2009 2 20 06:00 PM 2149 次查看
分类:Google App Engine 标签:Google App Engine, Python
在GAE中可以使用Python的标准模块logging,而且记录是可以直接在GAE的后台看到的,非常方便。
这里有篇讲述如何在GAE中使用记录系统的文章。
先简单介绍下logging。
logging中有6个级别的事件记录:CRITICAL、ERROR、WARNING、INFO、DEBUG和NOTSET。
其中前5个分别用critical、error、warning、info和debug函数来记录。
因为使用非常简单,我就直接给演示代码了。
2009 2 20 05:25 PM 2103 次查看
分类:Google App Engine 标签:Google App Engine
在《The Python Development Server》这篇文档里看到这个应用,确实很有用处,所以记录下来。
运行GAE服务器后,只需要访问这个地址即可:
http://localhost:8080/_ah/admin
不过提供的功能很有限,只能执行Python语句和查询、创建数据库实体。
2009 2 20 04:45 PM 2048 次查看
分类:Google App Engine 标签:Google App Engine, Python
正如GAE文档中所述,GAE会缓存一些模块和Handler Script,避免每个request都重新载入。
这里有篇《Google App Engine 对 module 的缓存时间》,你可以看到模块是怎么被缓存的。
要让Handler Script被缓存,需要为这个Handler Script定义一个无参的main函数,并且请求必须要调用这个main函数。(一般来说,我们的应用程序都是先在main函数里进行的,所以这点基本符合。)
2009 2 20 02:57 PM 2874 次查看
分类:无 标签:收藏
根据已故的麻省理工( MIT )哲学及逻辑家George Boolos,以下的趣味逻辑问题可算是全世界最难的一个。你可以解决这个难题吗?
有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话。还有一个随机地决定何时说真话,何时说假话。你可以向这三个精灵发问三条是非题(每个问题三个精灵都会作答),而你的任务是从他们的答案找出谁说真话,谁说假话,谁是随机答话。这个难题困难的地方是这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。你应该问那三条问题呢?
2009 2 20 02:13 PM 2482 次查看
分类:Google App Engine 标签: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这个全局变量来获取的。
2009 2 20 12:08 PM 2411 次查看
分类:Google App Engine 标签:Google App Engine, Python
由于GAE的数据库很慢,所以当需要一些更快速的持久性存取操作时,数据库就显得力不从心了。
好在Google也考虑到这个问题,提供了Memcache API来解决性能问题。方法就是把经常使用的、在数据库中查询比较耗时的数据放在内存中缓存起来,然后直接访问内存即可。
2009 2 20 10:50 AM 3237 次查看
分类:Google App Engine 标签:Google App Engine, Python
操作图像大概是Google App Engine中最有趣的功能了。
由于GAE不允许浏览者上传文件到服务器,所以存放到数据库就成了不二选择。可喜的是,如果你只是存储和显示图片,甚至连图像API都不需要用到,直接当成db.Blob类型的数据来使用即可。而且由于Google的慷慨,数据库空间是不限的,你可以在数据库中存放任意大小的文件(不过有流量限制)。
2009 2 19 11:55 PM 3715 次查看
分类:Google App Engine 标签:Google App Engine
更新:本服务已被GFW。
网址:
http://keakon.appspot.com/image
说明:
该站采用Google App Engine打造,采用了分布式网络及缓存技术,以提升图片载入速度。
图像空间不限,每天约可提供100万次浏览及10GB流量,每天可上传500MB图像。
只要不上传含敏感内容的图像,我一般是不会删除的。
« 看看还有什么好玩意