不索引Expando的动态属性

标签:Google App Engine, Python

Expando相比Model来说,多了个动态属性。为了少定义一些模型类,也许用动态属性比较方便,但这又牵扯到一个性能问题:动态属性无法像静态属性一样设置indexed=False。
对我的应用而言,大多数的静态属性是需要索引的,而动态属性则不需要,这便造成了浪费。

在GAE论坛提了半天也没等到好的解决办法,于是自己翻了下源码,发现Model类有个_unindexed_properties私有属性,这里面便是不需要索引的属性名了。

于是这样便可让动态属性不索引:

原来浏览器还支持data URI协议

标签:Python

一般浏览器引用资源时,都是用http和https协议,部分浏览器和所有的ftp软件都会使用ftp协议,引用本地文件会使用file协议,此外还有mms、thunder等各种协议。
不过刚才突然发现Firefox、Chrome和Opera等浏览器还支持data URI协议(IE 6不支持),格式非常简单:
data:资源类型;编码,内容
简单来说,要生成一个html资源,可以这样:
data:text/html;ascii,<html><title>hello</title><body>world</body></html>
你把上面的链接复制到浏览器地址栏,打开就能看到效果了。

Python 2.5.5正式发布

标签:Python

目前更新内容不详,从2.5.5的2个RC来看,对我的影响不大。

不过使用多线程的建议升级,貌似提升了竞争的加锁性能(可以避免创建一些不必要的锁)。

新风格的类引发的属性访问问题

标签:Python

Python里有个内建的property函数,可以把函数封装成属性,这是一个非常不错的功能。不过假如我希望这个函数只被调用一次,以后访问属性时就直接访问上次的结果,而不需要重新调用一次函数,那就有些麻烦了。

« 看看还有什么好玩意