如何在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