• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Desenvolvendo aplicações web com python e web2py
 

Desenvolvendo aplicações web com python e web2py

on

  • 6,343 views

Essa palestra foi ministrada pelo Gilson Filho e

Essa palestra foi ministrada pelo Gilson Filho e

Statistics

Views

Total Views
6,343
Views on SlideShare
6,084
Embed Views
259

Actions

Likes
4
Downloads
193
Comments
0

6 Embeds 259

http://blog.gilsondev.com 222
http://tdinfor.blogspot.com 28
http://tdinfor.blogspot.com.br 5
http://flisoldf.blog.br 2
http://translate.googleusercontent.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Desenvolvendo aplicações web com python e web2py Desenvolvendo aplicações web com python e web2py Presentation Transcript

    • Gilson Filho e Bruno Barbosa Desenvolvendo aplicações web com Python e Web2Py
    • Gilson Filho
      • Programador há 5 anos;
      • Desenvolvimento web há 3 anos;
      • Moderador do GruPy-DF;
      • Usuário linux há 3 anos;
      • Programador Java e Python;
      • Criador do FLISOL Inscriptions;
      • Participante do web2py-developers e equipe de tradução do web2py.
      @gilsonfilho http://gilsondev.com http://github.com/contatogilsonsbf
    • Bruno Barbosa
      • Graduando em Análise e Desenvolvimento de Sistemas;
      • Programador Python, Desenvolvedor Web – web2py, Plone;
      • Criador do Quebra Link;
      • Criador do FLISOL Inscriptions;
      • Moderador do GruPy-DF;
      • Membro da equipe de tradução do web2py;
      @bruninbsb http://algoritmizando.com http://github.com/bruninbsb
    • Python Básico
    • O que é Python?
      • Interpretada
      • Very High Level Language
      • Criada por Guido Van Rossum em 1989
      • Multiplataforma
      • Orientada a Objetos, procedural e funcional
      • Software Livre
      • Baterias Incluídas
      • Sintaxe elegante simples e clara
      • Tipagem dinâmica e forte
    • O que é Python?
      • Interpretada
      • Very High Level Language
      • Criada por Guido Van Rossum em 1989
      • Multiplataforma
      • Orientada a Objetos, procedural e funcional
      • Software Livre
      • Baterias Incluídas
      • Sintaxe elegante simples e clara
      • Tipagem dinâmica e forte
    • Criada por Guido Van Rossum em 1989
    • Multiplataforma
    • O que é Python?
      • Interpretada
      • Very High Level Language
      • Criada por Guido Van Rossum em 1989
      • Multiplataforma
      • Orientada a Objetos, procedural e funcional
      • Software Livre
      • Baterias Incluídas
      • Sintaxe elegante simples e clara
      • Tipagem dinâmica e forte
    • O que é Python?
      • Interpretada
      • Very High Level Language
      • Criada por Guido Van Rossum em 1989
      • Multiplataforma
      • Orientada a Objetos, procedural e funcional
      • Software Livre
      • Baterias Incluídas
      • Sintaxe elegante simples e clara
      • Tipagem dinâmica e forte
    • Baterias incluídas!!!
    • O que é Python?
      • Interpretada
      • Very High Level Language
      • Criada por Guido Van Rossum em 1989
      • Multiplataforma
      • Orientada a Objetos, procedural e funcional
      • Software Livre
      • Baterias Incluídas
      • Sintaxe elegante simples e clara
      • Tipagem dinâmica e forte
    • O que é Python?
      • Interpretada
      • Very High Level Language
      • Criada por Guido Van Rossum em 1989
      • Multiplataforma
      • Orientada a Objetos, procedural e funcional
      • Software Livre
      • Baterias Incluídas
      • Sintaxe elegante simples e clara
      • Tipagem dinâmica e forte
    • Onde é usada?
    • Exemplos Básicos
    • 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)
    • 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' }
    • 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>
    • Laços - For # -*- coding: utf-8 -*- for <referência> in <sequência>: <bloco de código> continue break
    • Laços - While # -*- coding: utf-8 -*- while <condição>: <bloco de código> continue break
    • 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.'
    • 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.'
    • Comentários # Comentário de uma linha # Linha que seta a codificação do arquivo # -*- coding: utf-8 -*- &quot;&quot;&quot; Doc String &quot;&quot;&quot;
    • Funções # -*- coding: utf-8 -*- def func (parametro1, parametro2=padrao): &quot;&quot;&quot; Doc String &quot;&quot;&quot; <bloco de código> return valor
    • O que é
    • É um framework criado em 2007 por Massimo Di Pierro
    • Foi criado no intuito de ensinar os seus alunos da faculdade
    • Baseado em vários frameworks como
    •  
    • É um projeto open source (LGPL v3)
    • Características
    • Framework Full-Stack
    • Não é necessário instalar e configurar para desenvolver
    • Multiplataforma
    • Roda em vários servidores web
    • Garante a compatibilidade entre as versões
    • Facilita a internacionalização da sua aplicação
    • Suporta herança e inclusão de views
    •  
    • Módulo de Autenticação e permissão de acesso prontos
    • Segue o padrão MVC
    • Possui um Scaffolding App
    • Possui um ambiente administrativo
    • Gerencia a aplicação
    • Modelos
    • Controladores (Controllers)
    • Visualizadores (Views)
    • Módulos (Modules)
    • Plugins
    • Acesso ao shell do Python
    • Possui uma administração de banco de dados
    •  
    •  
    •  
    • Possível editar o projeto com um editor web-based
    • O uso da interface administrativa é opcional
    • Renderiza o conteúdo em vários formatos
    • def hello(): message = &quot;Hello World&quot; return message Controller básico hello/controllers/default.py
    • Resultado http://localhost:8000/hello/default/hello
    • Nomenclatura das URLs http://localhost:8000/ hello / default / hello http://<address>:<port>/ app / controller / action
    • http://localhost:8000/ hello / default / hello/ 1 / 2 http://(...)/ app / controller / action/ arg1 / arg2 / argN
    • http://localhost:8000/ hello / default / hello ? id=1 & rg=1234 http://(...)/ app / controller / action ? var=1 & var=2 & var=n
    • def hello(): message = &quot;Hello World&quot; return dict(msg=message) Enviando conteúdo para a view hello/controllers/default.py
    • < h1 > {{=msg}} < /h1 > View básica hello/views/default/hello.html
    • Resultado http://localhost:8000/hello/default/hello
    • {{ extend 'layout.html' }} < h1 > {{=msg}} < /h1 > {{ include 'default/outra_msg.html' }} Adicionando herança e inclusão hello/views/default/hello.html
    • Resultado http://localhost:8000/hello/default/hello
    • Mas e a camada de dados?
    • DAL Data Abstraction Layer
    • “ DAL é uma API que mapeia objetos Python em objetos de banco de dados como queries,tabelas e registros. A DAL gera códigos SQL dinâmicamente em tempo real utilizando sempre o dialeto SQL referente ao banco de dados em uso.” http://web2py.com/book
    • Comunica com a maioria dos bancos de dados
    • Pode ser usado em outros frameworks
    • Abrindo conexão db = DAL( 'sqlite://banco.sqlite' )
    • 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' )
    • Criando uma tabela db.define_table( 'contact' , Field( 'first_name' , 'string' ,length= 50 ,notnull= True ), Field( 'last_name' ,length= 50 ), Field( 'age' , 'integer' ,default= 10 ) )
    • Tipos de dados
      • String
      • Text
      • Blob
      • Boolean
      • Integer
      • Double
      • decimal(n,m)
      • Date
      • Time
      • Datetime
      • Password
      • Upload
      • Referente <table>
      • List:string
      • List:integer
      • List:referente <table>
    • Relacionamentos Um para Muitos db.define_table( 'group' , Field( 'name' , 'string' ,length= 50 ) ) db.define_table( 'contact' , Field( 'name' ), Field( 'group' , db.group ) )
    • Relacionamentos db.define_table( 'group' , Field( 'name' , 'string' ,length= 50 ) ) db.define_table( 'contact' , Field( 'name' )) Muitos para Muitos db.define_table( 'role' , Field( 'group_id ', db.group ), Field( 'contact_id' , db.contact ) )
    • Projetos desenvolvidos em web2py
    • Campus Online http://campus.visie.com.br/
    • Innovare IT http://innovareit.com
    • Instant Press http://instantpress.com
    • Quebra Link http://quebralink.algoritmizando.com
    • Radbox http://radbox.com
    • Flisol Inscrições http://inscricoes.flisoldf.blog.br
    • Flisol Tweets http://flisoltweets.appspot.com
    • Mais aplicações em web2py http://web2py.com/poweredby http://web2py.com/appliances
    • 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
    • Apresentação disponível no http://algoritmizando.com http://blog.gilsondev.com http://flisoldf.blog.br
    • Obrigado a todos!