Curso web2py

Sintaxe Python

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

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.