Trabalhando com as views do Web2Py

1.019 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.019
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
25
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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

×