Criandeiros
Trabalhando com as views do Web2py
Who Am I?
● Hugo Leonardo Costa e Silva
● Apaixonado por desenvolvimento de software, DevOps e
novas tecnologias
● Trabalh...
Web2Py: Views
O propósito de uma view é incluir código Python no HTML.
No geral isso pode ocasionar alguns problemas.
● Co...
Web2Py: Views
O Web2Py usa {{ }} para separar o código
Python do HTML.
A indentação deve seguir as regras do HTML.
O códig...
Web2Py: Views
Sintaxe Básica
● A marcação para escape é feita dentro de {{ e }}
● Blocos de código começam nas linhas com ...
Web2Py: Views
Sintaxe Básica
<html>
<body>
{{for x in range(10):}}
{{=x}} hello <br />
{{pass}}
</body>
</html>
Web2Py: Views
Estruturas de controle
● for...in
{{ itens = ['a', 'b', 'c'] }}
<ul>
{{for item in itens:}}<li>{{=item}}</li...
Web2Py: Views
Estruturas de controle
● while
{{k = 3}}
<ul>
{{while k > 0:}}
<li>{{=k}}{{k = k – 1}}</li>
{{pass}}
</ul>
Web2Py: Views
Estruturas de controle
● If … elif … else
<h2>
{{=k}}
{{if k % 2:}} é par {{else:}} é ímpar {{pass}}
</h2>
Web2Py: Views
Tratamento de exceção
{{ try: }}
Hello {{= 10 / 0}}
{{ except: }}
Divisão por zero
{{ else: }}
Operação Ok.
...
Web2Py: Views
Definição de função
● A linguagem de template do web2py
permite ao desenvolvedor a definir e
implementar fun...
Web2Py: Views
Definição de função
{{ def SBUTTON(texto):
return BUTTON(texto, _class="btn btn-success")}}
<div>
{{=SBUTTON...
Web2Py: Views
HTML Helpers
● Os helpers de HTML são objetos que nos
auxiliam na construção do HTML
● O esquema de helpers ...
Web2Py: Views
Alguns helpers do Web2Py
● A, B, BEAUTIFY, BODY, BR, CAT, CENTER, CODE,
COL, COLGROUP, DIV, EM, EMBED, FIELD...
Web2Py: Views
Exemplos de uso
{{=DIV(B(I("hello ", "<world>"))), _class="myclass")}}
Resultado:
<div class="myclass"><b><i...
Web2Py: Views
Built-in helpers
{{=A('Clique Aqui', callback=URL('myaction'))}}
{{=A('Ver resultado', callback=URL('resulta...
Web2Py: Views
BEAUTIFY
BEAUTIFY é usado para criar representações
de objetos compostos em HTML incluindo
listas tuplas e d...
Web2Py: Views
Parser do DOM no servidor
O helper DIV e todos os seus derivados fornecem
métodos de pesquisa de elementos.
...
Web2Py: Views
Parser do DOM no servidor
Exemplo:
divs = DIV(DIV(DIV('div','alvo', _id='alvo',_class='alvo')))
divs.element...
Web2Py: Views
O Parsing
O Objeto TAG é também um parser XML/HTML.
Ele permite a leitura e conversão de strings em uma
árvo...
Web2Py: Views
O Layout
As views podem estender e incluir outras views em sua
estrutura.
Por exemplo podemos fazer com que ...
Web2Py: Views
Exemplo:
index.html
{{extend 'layout.html'}}
{{include 'body.html'}}
layout.html
{{include 'header.html'}}
{...
Web2Py: Views
Funções na view
<html>
<body>
{{include}}
<div class="sidebar">
{{if 'menulateral' in globals():}}{{menulate...
Web2Py: Views
E na view estendida...
{{def menulateral():}}
<ul><li><a href=”#home”>Home</a></li></ul>
{{return}}
{{extend...
Web2Py: Views
Blocos nas views
<html>
<body>
{{include}}
<div class="menulateral">
{{block menulateral}}
Menu lateral padr...
Web2Py: Views
E na view estendida...
{{extend 'layout.html'}}
{{block menulateral}}
Outro menu lateral
{{end}}
Web2Py: Views
E isso é tudo pessoal.
Contatos:
Twitter: @hugoleodev, @pythonair
Facebook: hugoleodev, PythOnAir
E-mail: hu...
Upcoming SlideShare
Loading in …5
×

Trabalhando com as views do Web2Py

858 views
725 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
858
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Trabalhando com as views do Web2Py

  1. 1. Criandeiros Trabalhando com as views do Web2py
  2. 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. 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. 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. 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
  6. 6. Web2Py: Views Sintaxe Básica <html> <body> {{for x in range(10):}} {{=x}} hello <br /> {{pass}} </body> </html>
  7. 7. Web2Py: Views Estruturas de controle ● for...in {{ itens = ['a', 'b', 'c'] }} <ul> {{for item in itens:}}<li>{{=item}}</li>{{pass}} </ul>
  8. 8. Web2Py: Views Estruturas de controle ● while {{k = 3}} <ul> {{while k > 0:}} <li>{{=k}}{{k = k – 1}}</li> {{pass}} </ul>
  9. 9. Web2Py: Views Estruturas de controle ● If … elif … else <h2> {{=k}} {{if k % 2:}} é par {{else:}} é ímpar {{pass}} </h2>
  10. 10. Web2Py: Views Tratamento de exceção {{ try: }} Hello {{= 10 / 0}} {{ except: }} Divisão por zero {{ else: }} Operação Ok. {{ finally }} <br /> {{ pass }}
  11. 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.
  12. 12. Web2Py: Views Definição de função {{ def SBUTTON(texto): return BUTTON(texto, _class="btn btn-success")}} <div> {{=SBUTTON("Sucesso")}} {{=WBUTTON("Warning")}} {{=DBUTTON("Danger")}} </div>
  13. 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.
  14. 14. Web2Py: Views Alguns helpers do Web2Py ● A, B, BEAUTIFY, BODY, BR, CAT, CENTER, CODE, COL, COLGROUP, DIV, EM, EMBED, FIELDSET, FORM, H1, H2, H3, H4, H5, H6, HEAD, HR, HTML, I, IFRAME, IMG, INPUT, LABEL, LEGEND, LI, LINK, MARKMIN, MENU, META, OBJECT, ON, OL, OPTGROUP, OPTION, P, PRE, SCRIPT, SELECT, SPAN, STYLE, TABLE, TAG, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, UL, URL, XHTML, XML, embed64, xmlescape
  15. 15. Web2Py: Views Exemplos de uso {{=DIV(B(I("hello ", "<world>"))), _class="myclass")}} Resultado: <div class="myclass"><b><i>hello &lt;world&gt;</i></b></div> {{=DIV('text', _data-role='collapsible')}} Resultado: <div data-role="collapsible">text</div>
  16. 16. Web2Py: Views Built-in helpers {{=A('Clique Aqui', callback=URL('myaction'))}} {{=A('Ver resultado', callback=URL('resultado'), target="retorno")}} {{=DIV(_id="retorno")}} {{=A('Click Aqui', callback=URL('myaction'), delete="tr")}}
  17. 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. 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. 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. 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. 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”.
  22. 22. Web2Py: Views Exemplo: index.html {{extend 'layout.html'}} {{include 'body.html'}} layout.html {{include 'header.html'}} {{include}} {{include 'foorter.html'}}
  23. 23. Web2Py: Views Funções na view <html> <body> {{include}} <div class="sidebar"> {{if 'menulateral' in globals():}}{{menulateral()}}{{else:}} menu padrão {{pass}} </div> </body> </html>
  24. 24. Web2Py: Views E na view estendida... {{def menulateral():}} <ul><li><a href=”#home”>Home</a></li></ul> {{return}} {{extend 'layout.html'}}
  25. 25. Web2Py: Views Blocos nas views <html> <body> {{include}} <div class="menulateral"> {{block menulateral}} Menu lateral padrão {{end}} </div> </body> </html>
  26. 26. Web2Py: Views E na view estendida... {{extend 'layout.html'}} {{block menulateral}} Outro menu lateral {{end}}
  27. 27. Web2Py: Views E isso é tudo pessoal. Contatos: Twitter: @hugoleodev, @pythonair Facebook: hugoleodev, PythOnAir E-mail: hugoleodev@gmail.com Github: hugoleodev

×