GAE SDK中还藏了个zipserve

标签:Google App Engine

刚才在《GAE中使用静态文件的三种方法》里看到,$PYTHON_LIB/google/appengine/ext/zipserve这个模块可以用来实现静态文件服务。

读了一下源码,使用的自然是zipfile模块,和我的办法几乎一样,不过还用到了mimetypes.guess_type()、email.Utils.formatdate()和app缓存。

如果访问量大的话,用单独的handler去做静态文件服务还是不错的,至少不占用主Python进程的CPU时间;而访问量较小的话,合并是个不错的选择。

在GAE上动态创建数据库模型

标签:Google App Engine, Python

今天在GAE论坛看到一个奇怪的问题,他说他的网站要允许用户创建任意类型的模型,可以包含任意类型的属性,问怎么实现。
例如用户需要临时创建一个Book类,这个类有title、author和rating这3个参数,但程序事先是不知道的。

GAE上启用Gzip压缩

标签:Google App Engine, Python

今天在测试WSGI框架时发现输出头中没有Content-Encoding: gzip,即内容不是gzip压缩的。

接着我输出了这个头,发现本地开发服务器上并没效果:

GAE部署时遇到GFW的解决办法

标签:GFW, Google App Engine

今天中午有人在邮件里问了我一个问题,说是上传失败,并贴出了记录。
因为出错是在urllib2.py里,一般是网络故障。如果本机网络正常的话,那就是GFW的问题了,于是我想到了使用代理。

在GAE中使用hook

标签:Google App Engine, Python

实际上Google App Engine文章中早就有一篇《在 Google App Engine 中使用 hook》来介绍hook技术了,只是当时对我没用,加上写得很难懂,所以没去细读。
而最近在考虑做blog,想像Discuz!一样做个性能评估,将页面生成时间、数据库访问次数等输出出来。
要实现这个功能的话,一般是需要自己封装一下数据库调用函数,在每次调用时记录下时间和增加调用次数,不过这样改动太大,所以就想到了hook,于是再次读了一遍。

« 看看还有什么好玩意