Para que sejamos capazes de exibir código Python em uma view precisamos utilizar delimitadores especiais para indicar quando estamos utilizando tal código. Por isso, o web2py processa automaticamente tudo que está entre {{ }} como código Python. Além disso, quando a informação é precedida por um sinal = (igual), significa que ela deve ser exibida para o usuário.
<html>
<body>
{{='Hello, World!'}}
</body>
</html>
Para mudar os delimitadores do web2py, você pode usar:
response.delimiters = ('<?','?>')
Caso essa informação seja indicada em um model, todas as views serão processadas com esses delimitadores; caso dentro de um controller, apenas as views daquele controller serão processadas com eles; caso em uma função do controller, apenas a view daquela função será processada com eles.
Blocos de código podem ser inseridos dentro da view sem indentação:
<html>
<body>
{{if True:}}
Isso é um teste!
{{pass}}
{{for num in range(10):}}
{{if num in range(10):}} #você sabe que isso é uma loucura
Número {{=num}}
{{pass}}
{{pass}}
</body>
</html>
Por isso, a informação {{pass}} é necessária. Ela indica o fim de um bloco de código.