O documento apresenta as principais funcionalidades das views no framework Web2py:
1) As views permitem incluir código Python no HTML usando marcações {{ }} para separar o código da formatação;
2) Estruturas de controle como for, if, else e funções podem ser definidas nas views para gerar dinamicamente o conteúdo HTML;
3) Helpers como DIV, FORM e outros auxiliam na geração do código HTML a partir do Python.
2. Who Am I?
● Hugo Leonardo Costa e Silva
● Apaixonado por desenvolvimento de software, DevOps e
novas tecnologias
● Trabalho com desenvolvimento de software a mais quatro
anos
● Trabalho com PHP, Python, Javascript
● Entusiasta e autodidata
3. Web2Py: Views
O propósito de uma view é incluir código Python no HTML.
No geral isso pode ocasionar alguns problemas.
● Como o código incluído no HTML deve ser escapado?
● A indentação deve ser baseada nas regras do Python ou do
HTML?
4. Web2Py: Views
O Web2Py usa {{ }} para separar o código
Python do HTML.
A indentação deve seguir as regras do HTML.
O código Python é executável mesmo sem
indentação.
5. Web2Py: Views
Sintaxe Básica
● A marcação para escape é feita dentro de {{ e }}
● Blocos de código começam nas linhas com {{ }} e terminadas em :
● Blocos de código terminam onde encontram a instrução {{pass}}
● Nos casos em que a construção do bloco for clara, não será preciso
usar o {{pass}}
● A linguagem de template do Web2Py suporta todas as estruturas de
controle do Python
8. Web2Py: Views
Estruturas de controle
● while
{{k = 3}}
<ul>
{{while k > 0:}}
<li>{{=k}}{{k = k – 1}}</li>
{{pass}}
</ul>
9. Web2Py: Views
Estruturas de controle
● If … elif … else
<h2>
{{=k}}
{{if k % 2:}} é par {{else:}} é ímpar {{pass}}
</h2>
10. Web2Py: Views
Tratamento de exceção
{{ try: }}
Hello {{= 10 / 0}}
{{ except: }}
Divisão por zero
{{ else: }}
Operação Ok.
{{ finally }}
<br />
{{ pass }}
11. Web2Py: Views
Definição de função
● A linguagem de template do web2py
permite ao desenvolvedor a definir e
implementar funções que podem retornar
qualquer objeto Python ou string de
texto/html.
13. Web2Py: Views
HTML Helpers
● Os helpers de HTML são objetos que nos
auxiliam na construção do HTML
● O esquema de helpers no web2py é muito mais
que um sistema de geração de HTML sem a
necessidade de concatenar string. Ele prove
uma representação do DOM no lado do
servidor.
17. Web2Py: Views
BEAUTIFY
BEAUTIFY é usado para criar representações
de objetos compostos em HTML incluindo
listas tuplas e dicionários.
{{=BEAUTIFY({"a": ["Hugo", XML("Leonardo")], "b": (1, 2)})}}
18. Web2Py: Views
Parser do DOM no servidor
O helper DIV e todos os seus derivados fornecem
métodos de pesquisa de elementos.
O element retorna o primeiro elemento filho especificado
do termo de busca ou None se caso não for encontrado.
O elements retorna todos os elementos
19. Web2Py: Views
Parser do DOM no servidor
Exemplo:
divs = DIV(DIV(DIV('div','alvo', _id='alvo',_class='alvo')))
divs.elements('div#alvo')
d[0][0] = 'elemento'
print divs
20. Web2Py: Views
O Parsing
O Objeto TAG é também um parser XML/HTML.
Ele permite a leitura e conversão de strings em uma
árvore de estrutura de helpers.
html = '<h3>Teste do <b>parser</b></h3>'
parsed_html = TAG(html)
parsed_html.element('b')[0]='parsing'
print parsed_html
21. Web2Py: Views
O Layout
As views podem estender e incluir outras views em sua
estrutura.
Por exemplo podemos fazer com que a view “index.html”
estenda a view “layout.html” e inclua a view “body.html”.
E ao mesmo tempo o “layout.html” incluir o “header.html” e
o “footer.html”.