Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desenvolvendo aplicações web com python e web2py

Desenvolvendo aplicações web com python e web2py

Palestra ministrada por mim e Bruno Barbosa, no FLISOL-DF de 2011

Gilson Filho

April 09, 2011
Tweet

More Decks by Gilson Filho

Other Decks in Programming

Transcript

  1. Gilson Filho e Bruno Barbosa Gilson Filho e Bruno Barbosa

    Desenvolvendo aplicações Desenvolvendo aplicações web com Python e Web2Py web com Python e Web2Py
  2. Gilson Filho Gilson Filho • Programador há 5 anos; Programador

    há 5 anos; • Desenvolvimento web há 3 anos; Desenvolvimento web há 3 anos; • Moderador do GruPy-DF; Moderador do GruPy-DF; • Usuário linux há 3 anos; Usuário linux há 3 anos; • Programador Java e Python; Programador Java e Python; • Criador do FLISOL Inscriptions; Criador do FLISOL Inscriptions; • Participante do web2py-developers e equipe de Participante do web2py-developers e equipe de tradução do web2py. tradução do web2py. @gilsonfilho @gilsonfilho http://gilsondev.com http://gilsondev.com http://github.com/contatogilsonsbf http://github.com/contatogilsonsbf
  3. Bruno Barbosa Bruno Barbosa • Graduando em Análise e Desenvolvimento

    de Graduando em Análise e Desenvolvimento de Sistemas; Sistemas; • Programador Python, Desenvolvedor Web – Programador Python, Desenvolvedor Web – web2py, Plone; web2py, Plone; • Criador do Quebra Link; Criador do Quebra Link; • Criador do FLISOL Inscriptions; Criador do FLISOL Inscriptions; • Moderador do GruPy-DF; Moderador do GruPy-DF; • Membro da equipe de tradução do web2py; Membro da equipe de tradução do web2py; @bruninbsb @bruninbsb http://algoritmizando.com http://algoritmizando.com http://github.com/bruninbsb http://github.com/bruninbsb
  4. O que é Python? O que é Python? • Interpretada

    Interpretada • Very High Level Language Very High Level Language • Criada por Guido Van Rossum em 1989 Criada por Guido Van Rossum em 1989 • Multiplataforma Multiplataforma • Orientada a Objetos, procedural e funcional Orientada a Objetos, procedural e funcional • Software Livre Software Livre • Baterias Incluídas Baterias Incluídas • Sintaxe elegante simples e clara Sintaxe elegante simples e clara • Tipagem dinâmica e forte Tipagem dinâmica e forte
  5. O que é Python? O que é Python? • Interpretada

    Interpretada • Very High Level Language Very High Level Language • Criada por Guido Van Rossum em 1989 Criada por Guido Van Rossum em 1989 • Multiplataforma Multiplataforma • Orientada a Objetos, procedural e funcional Orientada a Objetos, procedural e funcional • Software Livre Software Livre • Baterias Incluídas Baterias Incluídas • Sintaxe elegante simples e clara Sintaxe elegante simples e clara • Tipagem dinâmica e forte Tipagem dinâmica e forte
  6. O que é Python? O que é Python? • Interpretada

    Interpretada • Very High Level Language Very High Level Language • Criada por Guido Van Rossum em 1989 Criada por Guido Van Rossum em 1989 • Multiplataforma Multiplataforma • Orientada a Objetos, procedural e funcional Orientada a Objetos, procedural e funcional • Software Livre Software Livre • Baterias Incluídas Baterias Incluídas • Sintaxe elegante simples e clara Sintaxe elegante simples e clara • Tipagem dinâmica e forte Tipagem dinâmica e forte
  7. O que é Python? O que é Python? • Interpretada

    Interpretada • Very High Level Language Very High Level Language • Criada por Guido Van Rossum em 1989 Criada por Guido Van Rossum em 1989 • Multiplataforma Multiplataforma • Orientada a Objetos, procedural e funcional Orientada a Objetos, procedural e funcional • Software Livre Software Livre • Baterias Incluídas Baterias Incluídas • Sintaxe elegante simples e clara Sintaxe elegante simples e clara • Tipagem dinâmica e forte Tipagem dinâmica e forte
  8. O que é Python? O que é Python? • Interpretada

    Interpretada • Very High Level Language Very High Level Language • Criada por Guido Van Rossum em 1989 Criada por Guido Van Rossum em 1989 • Multiplataforma Multiplataforma • Orientada a Objetos, procedural e funcional Orientada a Objetos, procedural e funcional • Software Livre Software Livre • Baterias Incluídas Baterias Incluídas • Sintaxe elegante simples e clara Sintaxe elegante simples e clara • Tipagem dinâmica e forte Tipagem dinâmica e forte
  9. O que é Python? O que é Python? • Interpretada

    Interpretada • Very High Level Language Very High Level Language • Criada por Guido Van Rossum em 1989 Criada por Guido Van Rossum em 1989 • Multiplataforma Multiplataforma • Orientada a Objetos, procedural e funcional Orientada a Objetos, procedural e funcional • Software Livre Software Livre • Baterias Incluídas Baterias Incluídas • Sintaxe elegante simples e clara Sintaxe elegante simples e clara • Tipagem dinâmica e forte Tipagem dinâmica e forte
  10. Variáveis Variáveis # -*- coding: utf-8 -*- # Tipagem forte

    e dinâmica var_int = 11 var_float = 1.1 var_text = "Isso é uma String" print type(var_int) # int print type(var_float) # float print type(var_text) # str (String)
  11. Lista, Tupla e Dicionários Lista, Tupla e Dicionários # -*-

    coding: utf-8 -*- # Lista pode ser alterado lista01 = [1,2,3] lista02 = ['a','b','c'] # Tupla não pode ser alterado tupla01 = (1,2,3) tupla02 = ('a','b','c') # Chaves e Valores pode ser de qualquer tipo dicionario01 = {'a':1,'b':2,'c':3} dicionario02 = {1:'a',2:'b',3:'c'}
  12. Estrutura Condicional Estrutura Condicional # -*- coding: utf-8 -*- if

    <condicao>: <bloco de código> elif <condição>: # Mesma coisa que else if <bloco de código> elif <condição>: <bloco de código> else: <bloco de código>
  13. Laços - For Laços - For # -*- coding: utf-8

    -*- for <referência> in <sequência>: <bloco de código> continue break
  14. Laços - While Laços - While # -*- coding: utf-8

    -*- while <condição>: <bloco de código> continue break
  15. Valores booleanos Valores booleanos # -*- coding: utf-8 -*- vai_passar

    = True if vai_passar: print 'Condicao aprovada' nao_passa = False if nao_passa: print 'Não pode passar!' else: print 'Não era para passar mesmo.'
  16. Valores booleanos Valores booleanos # -*- coding: utf-8 -*- #

    Os valores abaixam também é do tipo False zero = 0 nulo = None string_vazia = '' if zero: # (...) elif nulo: # (...) elif string_vazia: # (...) else: print 'Todos os valores testados acima sao False.'
  17. Comentários Comentários # Comentário de uma linha # Linha que

    seta a codificação do arquivo # -*- coding: utf-8 -*- """ Doc String """
  18. É um framework criado em É um framework criado em

    2007 por Massimo Di Pierro 2007 por Massimo Di Pierro
  19. Foi criado no intuito de ensinar os Foi criado no

    intuito de ensinar os seus alunos da faculdade seus alunos da faculdade
  20. Não é necessário instalar e Não é necessário instalar e

    configurar para desenvolver configurar para desenvolver
  21. Módulo de Autenticação e Módulo de Autenticação e permissão de

    acesso prontos permissão de acesso prontos
  22. Possível editar o projeto com um Possível editar o projeto

    com um editor editor web-based web-based
  23. O uso da interface O uso da interface administrativa é

    opcional administrativa é opcional
  24. def hello(): message = "Hello World" return message Controller básico

    Controller básico hello/controllers/default.py hello/controllers/default.py
  25. def hello(): message = "Hello World" return dict(msg=message) Enviando conteúdo

    para a view Enviando conteúdo para a view hello/controllers/default.py hello/controllers/default.py
  26. {{ extend 'layout.html' }} <h1>{{=msg}}</h1> {{ include 'default/outra_msg.html' }} Adicionando

    herança e inclusão Adicionando herança e inclusão hello/views/default/hello.html hello/views/default/hello.html
  27. “ “DAL é uma API que DAL é uma API

    que mapeia objetos Python mapeia objetos Python em objetos de banco de dados em objetos de banco de dados como como queries,tabelas e registros. A DAL gera queries,tabelas e registros. A DAL gera códigos SQL dinâmicamente em tempo real códigos SQL dinâmicamente em tempo real utilizando sempre o dialeto SQL referente ao utilizando sempre o dialeto SQL referente ao banco de dados em uso.” banco de dados em uso.” http://web2py.com/book http://web2py.com/book
  28. db = DAL('mysql://username:password@localhost/test') db = DAL('postgres://username:password@localhost/test') db = DAL('mssql://username:password@localhost/test') db

    = DAL('firebird://username:password@localhost/test') db = DAL('oracle://username/password@test') db = DAL('db2://username:password@test') db = DAL('ingres://username:password@localhost/test') db = DAL('informix://username:password@test') db = DAL('gae')
  29. Tipos de dados Tipos de dados • String String •

    Text Text • Blob Blob • Boolean Boolean • Integer Integer • Double Double • decimal(n,m) decimal(n,m) • Date Date • Time Time • Datetime Datetime • Password Password • Upload Upload • Referente <table> Referente <table> • List:string List:string • List:integer List:integer • List:referente <table> List:referente <table>
  30. Relacionamentos Relacionamentos db.define_table('group', Field('name','string',length=50) ) db.define_table('contact', Field('name')) Muitos para Muitos

    Muitos para Muitos db.define_table('role', Field('group_id',db.group), Field('contact_id',db.contact) )
  31. Mais informações sobre web2py Mais informações sobre web2py Site Oficial

    http://web2py.com Web2Py Brasil http://web2pybrasil.appspot.com Web2Py Slices (Tutoriais,Artigos,Snippets) http://web2pyslices.com Web2Py Group http://groups.google.com/group/web2py Web2Py Users Brazil http://groups.google.com/group/web2py-users-brazil Web2Py Ebook http://web2py.com/book