Podemos, também, gerar código HTML a partir de algumas funções do web2py que funcionam como auxiliares. Por exemplo:
{{=DIV('Conteúdo da Div', _id='teste', _class='testando')}}
É renderizado como:
<div id="teste" class="testando">Conteúdo da Div</div>
Todos os argumentos que iniciam com um underline (_) são interpretados como atributos da tag e, portanto, são renderizados como tais.
Além disso, helpers podem ser utilizados em conjunto:
{{=DIV(B(I("Isso é um teste"))), _class="testando")}}
É o mesmo que:
<div class="testando"><b><i>Isso é um teste</i></b></div>
E eles também podem ser enviados para a view:
def pagina_legal():
conteudo = DIV(B('Muito legal!'), _class="sua_classe")
return dict(conteudo=conteudo)
E lá utilizados:
<html>
<body>
{{=conteudo}}
</body>
</html>
Traduz-se nas tags <a> </a>
, utilizado para construir links.
>>> A('Clique aqui', callback=URL('pagina_legal'), target="t")
<a href="/pagina_legal" target="t">Clique aqui</a>
Traduz-se nas tags <b> </b>
, transformando seu conteúdo em negrito.
>>> B('Conteúdo em negrito')
<b>Conteúdo em negrito</b>
Traduz-se nas tags <div> </div>
, criando uma nova div.
>>> DIV('Conteúdo da DIV', _id="seu_id", _class="sua_classe")
<div id="seu_id" class="sua_classe">Conteúdo da DIV</div>
Traduz-se nas tags <form> </form>
e <input>
, respectivamente, criando um formulário com seus inputs.
>>> FORM(INPUT(_type='checkbox', _name='teste', _value='testando', value=False), _action=URL('contato'), _method='post')
<form action="/contato" method="post">
<input type="checkbox" name="teste" value="testando" />
</form>
Traduz-se nas tags <i> </i>
, transformando seu conteúdo em itálico.
>>> I('Conteúdo em itálico')
<i>Conteúdo em itálico</i>
Traduz-se na tag <img>
, gerando imagens.
>>> IMG(_src='http://example.com/image.png',_alt='teste')
<img src="http://example.com/image.png" alt="test" />