[英]How to use dicts in Mako templates?
每當我將復雜的數據結構傳遞給Mako時,很難迭代它。 例如,我傳遞了list的dict dict,並且要在Mako中訪問它,我必須做類似的事情:
% for item in dict1['dict2']['list']: ... %endfor
我想知道Mako是否有一些機制可以取代[]
用法來簡單地訪問字典元素.
?
然后我可以將上面的行寫成:
% for item in dict1.dict2.list: ... %endfor
哪個更好,不是嗎?
謝謝,Boda Cydo。
簡化Ł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
另見: http : //code.activestate.com/recipes/52308-the-simple-but-handy-collector-of-a-bunch-of-named/
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)
將to_bunch
傳遞給to_bunch
函數,然后將其傳遞給Mako模板。 不幸的是,Mako沒有提供任何鈎子來自動執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.