mako的context是一个保留的名称,其包含了一些下面的方法
context[key]或者context.get(key,default=None),类似dict
keys 所有context中定义的名称
kwargs,返回一个context的dict变量,通常在传播变量时有用
write 写到缓冲区
lookup 返回一个TemplateLookup的实例。
Loop上下文(new in version 0.7)
在%for的block中,有一个保留字loop,便于迭代,如${loop.index}
无论如何形式的循环,loop都是基于0的迭代索引。
loop.index, loop.even, loop.odd, loop.first(用来表明是否为第一个迭代),loop.reverse_index, loop.last。
在0.7版本中,cycling可以在是否提供__len__方法中使用,
<ul>
%for item in ('spam', 'ham', 'eggs'):
<li class="${loop.cycle('even', 'odd')}">${item}</li>
%endfor
</ul>
loop.parent用来访问上一级的loop循环
在mako 0.7版本中loop成为保留字,为了兼容之前的,可以在TemplateLookup中屏蔽,enable_loop=False,或者在<%page>中使用 <%page enable_loop="True" />
下面是所有内建的关键字
context
local
self
parent
next
caller
loop
capture
UNDEFINED
pageargs
其中这几个是保留字 context, UNDEFINED, loop