忽略jinja2的UndefinedError

Posted on 2012年5月27日 02:43

背景:

jinja2模板中,如果有变量为None,而又有获取其属性的行为,则会产生UndefinedError异常。

解决方案:

此方案针对flask框架的情况。

subclass默认的Undefined类为Myundefined,并重新定义_fail_with_undefined_error这个方法为什么都不做。设定app采用自定义的Myundefined类。

代码如下:

 

import jinja2

...

class Myundefined(jinja2.Undefined):
    def _fail_with_undefined_error(self, *args, **kwargs):
        pass

app.jinja_env.undefined = Myundefined

MySQL-python 在 Ubuntu 上的安装

Posted on 2011年8月23日 22:33

MySQL-python 倚赖于 setuptools,而 setuptools 又需要 zlib。具体安装步骤如下:

  1. 下载 zlib, python2.6, setuptools, MySQL-python 源码包
  2. 编译安装 zlib, configure 参数使用 --prefix=PATH --shared
  3. 编译安装 python, configure 参数使用 --prefix=PATH --with-zlib=PATH
  4. 安装 setuptools
  5. 安装 MySQL-python。若提示缺少 mysql_config 文件,用 apt-get 安装 libmysqld-dev

Pymongo技巧

Posted on 2011年7月02日 19:49

用_id查询

from pymongo.objectid import ObjectId

...


posts.find_one({'_id':ObjectId(_id)})

降序排列

 

posts.find().sort([('_id',-1)])