(flowControl)
(flowControl.for)
The template:
#for $i in $range(10)
$i #slurp
#end for
The output:
0 1 2 3 4 5 6 7 8 9
The generated code:
for i in range(10):
write(filter(i)) # generated from '$i' at line 2, col 1.
write(' ')
(flowControl.repeat)
The template:
#repeat 3
My bonnie lies over the ocean
#end repeat
O, bring back my bonnie to me!
The output:
My bonnie lies over the ocean
My bonnie lies over the ocean
My bonnie lies over the ocean
O, bring back my bonnie to me!
(OK, so the second line should be “sea” instead of “ocean”.)
The generated code:
for __i0 in range(3):
write('My bonnie lies over the ocean\n')
write('O, bring back my bonnie to me!\n')
Note that a new local variable of the form {__i$num} will be used for each instance of {repeat} in order to permit nesting.
(flowControl.while)
The template:
#set $alive = True
#while $alive
I am alive!
#set $alive = False
#end while
The output:
I am alive!
The generated code:
alive = True
while alive:
write('I am alive!\n')
alive = False
()
The template:
#set $size = 500
#if $size >= 1500
It's big
#else if $size < 1500 and $size > 0
It's small
#else
It's not there
#end if
The output:
It's small
The generated code:
size = 500
if size >= 1500:
write("It's big\n")
elif size < 1500 and size > 0:
write("It's small\n")
else:
write("It's not there\n")
(flowControl.unless)
The template:
#set $count = 9
#unless $count + 5 > 15
Count is in range.
#end unless
The output:
Count is in range.
The generated code:
count = 9
if not (count + 5 > 15):
write('Count is in range.\n')
{ Note:} There is a bug in Cheetah 0.9.13. It’s forgetting the parentheses in the {if} expression, which could lead to it calculating something different than it should.
(flowControl.break)
The template:
#for $i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 'James', 'Joe', 'Snow']
#if $i == 10
#continue
#end if
#if $i == 'Joe'
#break
#end if
$i - #slurp
#end for
The output:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 11 - 12 - James -
The generated code:
for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 'James', 'Joe', 'Snow']:
if i == 10:
write('')
continue
if i == 'Joe':
write('')
break
write(filter(i)) # generated from '$i' at line 8, col 1.
write(' - ')
(flowControl.pass)
The template:
Let's check the number.
#set $size = 500
#if $size >= 1500
It's big
#elif $size > 0
#pass
#else
Invalid entry
#end if
Done checking the number.
The output:
Let's check the number.
Done checking the number.
The generated code:
write("Let's check the number.\n")
size = 500
if size >= 1500:
write("It's big\n")
elif size > 0:
pass
else:
write('Invalid entry\n')
write('Done checking the number.\n')
(flowControl.stop)
The template:
A cat
#if 1
sat on a mat
#stop
watching a rat
#end if
in a flat.
The output:
A cat
sat on a mat
The generated code:
write('A cat\n')
if 1:
write(' sat on a mat\n')
if dummyTrans:
return trans.response().getvalue()
else:
return ""
write(' watching a rat\n')
write('in a flat.\n')
(flowControl.return)
The template:
1
$test[1]
3
#def test
1.5
#if 1
#return '123'
#else
99999
#end if
#end def
The output:
1
2
3
The generated code:
def test(self,
trans=None,
dummyTrans=False,
VFS=valueFromSearchList,
VFN=valueForName,
getmtime=getmtime,
currentTime=time.time):
"""
Generated from #def test at line 5, col 1.
"""
if not trans:
trans = DummyTransaction()
dummyTrans = True
write = trans.response().write
SL = self._searchList
filter = self._currentFilter
globalSetVars = self._globalSetVars
########################################
## START - generated method body
write('1.5\n')
if 1:
return '123'
else:
write('99999\n')
########################################
## END - generated method body
if dummyTrans:
return trans.response().getvalue()
else:
return ""
def respond(self,
trans=None,
dummyTrans=False,
VFS=valueFromSearchList,
VFN=valueForName,
getmtime=getmtime,
currentTime=time.time):
"""
This is the main method generated by Cheetah
"""
if not trans:
trans = DummyTransaction()
dummyTrans = True
write = trans.response().write
SL = self._searchList
filter = self._currentFilter
globalSetVars = self._globalSetVars
########################################
## START - generated method body
write('\n1\n')
write(filter(VFS(SL,"test",1)[1])) # generated from '$test[1]' at line 3, col 1.
write('\n3\n')
########################################
## END - generated method body
if dummyTrans:
return trans.response().getvalue()
else:
return ""