mako的context及loop关键字(三)

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

/*
*
* Copyright (c) 2011 Ubunoon.
* All rights reserved.
*
* email: netubu#gmail.com replace '#' to '@'
* http://www.cnblogs.com/ubunoon
* 欢迎来邮件定制各类验证码识别,条码识别,图像处理等软件
* 推荐不错的珍珠饰品,欢迎订购 * 宜臣珍珠(淡水好珍珠) */
原文地址:https://www.cnblogs.com/ubunoon/p/2611863.html