如何在Mako模板中使用dicts?

bod*_*ydo 2 python templates mako

每当我将复杂的数据结构传递给Mako时,很难迭代它.例如,我传递了list的dict dict,并且要在Mako中访问它,我必须做类似的事情:

% for item in dict1['dict2']['list']: ... %endfor

我想知道Mako是否有一些机制可以[]用简单的替换用法来访问字典元素.

然后我可以将上面的行写成:

% for item in dict1.dict2.list: ... %endfor

哪个更好,不是吗?

谢谢,Boda Cydo.

Jes*_*dge 8

简化Łukasz的例子:

class Bunch:
    def __init__(self, d):
        for k, v in d.items():
            if isinstance(v, dict):
                v = Bunch(v)
            self.__dict__[k] = v

print Bunch({'a':1, 'b':{'foo':2}}).b.foo
Run Code Online (Sandbox Code Playgroud)

另见:http: //code.activestate.com/recipes/52308-the-simple-but-handy-collector-of-a-bunch-of-named/