其他分享
首页 > 其他分享> > 如何在Mako模板中使用dicts?

如何在Mako模板中使用dicts?

作者:互联网

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

dict1 [‘dict2’] [‘list’]中项目的百分比:…%endfor

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

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

dict1.dict2.list中项目的百分比:…%endfor

哪个更好,不是吗?

谢谢,Boda Cydo.

解决方法:

class Bunch(dict):
    def __init__(self, d):
        dict.__init__(self, d)
        self.__dict__.update(d)

def to_bunch(d):
    r = {}
    for k, v in d.items():
        if isinstance(v, dict):
            v = to_bunch(v)
        r[k] = v
    return Bunch(r)

将dict1传递给to_bunch函数,然后将其传递给Mako模板.不幸的是,Mako没有提供任何钩子来自动执行此操作.

标签:mako,python,templates
来源: https://codeday.me/bug/20191008/1872593.html