SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Google App Engine e Python

                   Renzo Nuccitelli
           Engenheiro de Computação – ITA
               renzo@nuccitec.com.br
Objetivo


Explicar a infra do Google App Engine utilizando
  o framework Python Webapp-CE
Roteiro
•   Google App Engine
•   Webapp-CE
•   Problema Base: Cadastro de Pessoas
•   Controller
•   Modelo
•   View
•   Formulário e Validação
•   Aplicação Comercial: Revelação Virtual
•   Conclusões
Google App Engine
•   Cloud do Google
•   Suporte a 3 linguagens: Java, Python e Go
•   Modelo SaaS (Software as a Service)
•   https://appengine.google.com/
•   GAE para os mais íntimos
Google App Engine : Vantagens
•   Escalável
•   Centralizada e excelente documentação
•   Excelente API
•   “Pay as you go”, com cota grátis
•   Abstração da camada de persistência
•   Definição dos dados na própria linguagem.
Google App Engine: Desvantagens
•   Lock-in da API e dos dados
•   Restrições nas pesquisas
•   Restrições na duração de requisições
•   Adaptação de desenvs acostumados a outros
    ambientes
Webapp-CE
• Framework web
• Mapeamento de urls ao estilo PHP
• Validação de formulários
• Transformação de dados para o modelo
• Instalação através da simples cópia de
  arquivos a setup de arquivo app.yaml
• http://code.google.com/p/webapp-ce/
Problema Base
• Construir Applicativo Web para cadastro de
  pessoas
• Ferramentas: Google Launcher + Pydev (Plugin
  Python para Eclipse)
• Será que fazemos em 30 minutos?
Controller

• Criar controller na pasta private
• Delegar handler para cehandler no app.yaml
• Mapear links com cengine
Modelo
• Big Table – Banco de Dados não relacional
• Módulo db do GAE
• Criar Classe User com Nome (name) e
  Telefone (phone) e Id do Google (googleid)
• Criar método estático para achar usuário
  corrente logado (getCurrent)
View
• Templates Django
• Utilizar classe Form do pacote ce.forms para
  gerar o formulário básico
• Criar formulário para cadastro de usuário
  (módulo ce.forms)
• Criar lista de usuários cadastrados
• Criar classe para renderizar templates
Formulário e Validação
• Classe Form de ce.forms já faz validação
  básica
• Método validate
• Método transform
• Possível extender com suas regras de
  validação e transformação
Aplicação Comercial
• Site Revelação Virtual
  www.revelacaovirtual.com.br
• Mais de 200 mil fotos transmitidas em 2010
• Desenvolvido com equipe enxuta
Conclusões
• Apenas introdução, faltou muito coisa
  (Segurança, Filtros, Cache e etc)
• Ambdev simples
• Administração via web
• Framework enxuto e open source
• Opção barata para startups de tecnologia
  (cota grátis e custo variável)
Roteiro
•   Google App Engine
•   Webapp-CE
•   Problema Base: Cadastro de Pessoas
•   Controller
•   Modelo
•   View
•   Formulário e Validação
•   Aplicação Comercial Real: Revelação Virtual
•   Conclusões
Objetivo


Explicar a infra do Google App Engine utilizando
  o framework Python Webapp-CE
Obrigado pela atenção!
      Perguntas?

Weitere ähnliche Inhalte

Was ist angesagt?

Vue.js - Framwork Progressivo
Vue.js - Framwork ProgressivoVue.js - Framwork Progressivo
Vue.js - Framwork ProgressivoBruno Santana
 
Framework PHP para auxiliar no desenvolvimento de aplicações web
Framework PHP para auxiliar no desenvolvimento de aplicações webFramework PHP para auxiliar no desenvolvimento de aplicações web
Framework PHP para auxiliar no desenvolvimento de aplicações webJosemar Davi Luedke
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFBruno Borges
 
Ad Specifications Manual do Homem Moderno
Ad Specifications Manual do Homem ModernoAd Specifications Manual do Homem Moderno
Ad Specifications Manual do Homem ModernoManual do Homem Moderno
 
Proposta desenvolvimento de site pláno básico
Proposta desenvolvimento de site   pláno básicoProposta desenvolvimento de site   pláno básico
Proposta desenvolvimento de site pláno básicoMarcos Gabler
 
Otimize sua web page e web components
Otimize sua web page e web componentsOtimize sua web page e web components
Otimize sua web page e web componentsAndré Betiolo
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Fernando Henrique
 
CakePHP workshop ifsul
CakePHP workshop ifsulCakePHP workshop ifsul
CakePHP workshop ifsulWaldemar Neto
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSLeonardo Zanivan
 
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...Renato Groff
 
Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2Rafael Corrêa Gomes
 
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - JoinvilleExtração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - JoinvilleRenato Groff
 
Separando a regra de negócios do Rails
Separando a regra de negócios do RailsSeparando a regra de negócios do Rails
Separando a regra de negócios do RailsCelso Crivelaro
 

Was ist angesagt? (17)

Vue.js - Framwork Progressivo
Vue.js - Framwork ProgressivoVue.js - Framwork Progressivo
Vue.js - Framwork Progressivo
 
Framework PHP para auxiliar no desenvolvimento de aplicações web
Framework PHP para auxiliar no desenvolvimento de aplicações webFramework PHP para auxiliar no desenvolvimento de aplicações web
Framework PHP para auxiliar no desenvolvimento de aplicações web
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
 
Ad Specifications Manual do Homem Moderno
Ad Specifications Manual do Homem ModernoAd Specifications Manual do Homem Moderno
Ad Specifications Manual do Homem Moderno
 
Proposta desenvolvimento de site pláno básico
Proposta desenvolvimento de site   pláno básicoProposta desenvolvimento de site   pláno básico
Proposta desenvolvimento de site pláno básico
 
Otimize sua web page e web components
Otimize sua web page e web componentsOtimize sua web page e web components
Otimize sua web page e web components
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
CakePHP workshop ifsul
CakePHP workshop ifsulCakePHP workshop ifsul
CakePHP workshop ifsul
 
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
 
Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2
 
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - JoinvilleExtração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
 
Separando a regra de negócios do Rails
Separando a regra de negócios do RailsSeparando a regra de negócios do Rails
Separando a regra de negócios do Rails
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Framework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring bootFramework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring boot
 

Andere mochten auch

Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtagcamunda services GmbH
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyPET Computação
 
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGWas User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGONE Schweiz
 
TDD com Python e App Engine
TDD com Python e App EngineTDD com Python e App Engine
TDD com Python e App EngineRicardo Bánffy
 
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundMaklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundCybay New Media
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im FokusInxmail GmbH
 
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...PHINEO gemeinnützige AG
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOGary Briceño
 
Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916Hugo E Martin
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineFrederico Maia Arantes
 
коллекция Audi в миниатюре
коллекция Audi в миниатюреколлекция Audi в миниатюре
коллекция Audi в миниатюреVag-Express
 
Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEMHicham SBINI
 
Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)Carlos De La Ossa
 
Tecnicas SEO
Tecnicas SEOTecnicas SEO
Tecnicas SEObluekiu
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011get on top gmbh
 

Andere mochten auch (20)

Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtag
 
Pictures mix
Pictures mixPictures mix
Pictures mix
 
Ogre Game Engine
Ogre Game EngineOgre Game Engine
Ogre Game Engine
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the ugly
 
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGWas User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
 
TDD com Python e App Engine
TDD com Python e App EngineTDD com Python e App Engine
TDD com Python e App Engine
 
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundMaklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im Fokus
 
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEO
 
Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
 
коллекция Audi в миниатюре
коллекция Audi в миниатюреколлекция Audi в миниатюре
коллекция Audi в миниатюре
 
Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEM
 
Aula de Risoto
Aula de Risoto Aula de Risoto
Aula de Risoto
 
Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)
 
eind presentatie
eind presentatieeind presentatie
eind presentatie
 
Communicating sustainibility
Communicating sustainibilityCommunicating sustainibility
Communicating sustainibility
 
Tecnicas SEO
Tecnicas SEOTecnicas SEO
Tecnicas SEO
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011
 

Ähnlich wie Google App Engine Python Introdução

Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnicaSilvio Dias
 
Guiao demotecnica
Guiao demotecnicaGuiao demotecnica
Guiao demotecnicaSilvio Dias
 
Backend em aplicações Android - Google I/O 2015
Backend em aplicações Android - Google I/O 2015Backend em aplicações Android - Google I/O 2015
Backend em aplicações Android - Google I/O 2015Thales Lima
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosRyan Padilha
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...minastestingconference
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançadoTargettrust
 
Aplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineAplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineRodrigo Amaral
 
Introdução ao Google App Engine
Introdução ao Google App EngineIntrodução ao Google App Engine
Introdução ao Google App EngineRodrigo Amaral
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 

Ähnlich wie Google App Engine Python Introdução (20)

Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnica
 
Guiao demotecnica
Guiao demotecnicaGuiao demotecnica
Guiao demotecnica
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Backend em aplicações Android - Google I/O 2015
Backend em aplicações Android - Google I/O 2015Backend em aplicações Android - Google I/O 2015
Backend em aplicações Android - Google I/O 2015
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
Curso AngularJS - Parte 2
Curso AngularJS - Parte 2Curso AngularJS - Parte 2
Curso AngularJS - Parte 2
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Aplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineAplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App Engine
 
Introdução ao Google App Engine
Introdução ao Google App EngineIntrodução ao Google App Engine
Introdução ao Google App Engine
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 

Mehr von Renzo Nuccitelli

Apresentação do projeto Python Birds
Apresentação do projeto Python BirdsApresentação do projeto Python Birds
Apresentação do projeto Python BirdsRenzo Nuccitelli
 
Confissões de um arquiteto de software
Confissões de um arquiteto de softwareConfissões de um arquiteto de software
Confissões de um arquiteto de softwareRenzo Nuccitelli
 
Angular js desenvolvimento de frontend zen - python nordeste
Angular js   desenvolvimento de frontend zen - python nordesteAngular js   desenvolvimento de frontend zen - python nordeste
Angular js desenvolvimento de frontend zen - python nordesteRenzo Nuccitelli
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Renzo Nuccitelli
 
Google App Engine, Python e Startups - Rupy 2012
Google App Engine, Python e Startups - Rupy 2012Google App Engine, Python e Startups - Rupy 2012
Google App Engine, Python e Startups - Rupy 2012Renzo Nuccitelli
 

Mehr von Renzo Nuccitelli (11)

Programando a felicidade
Programando a felicidadeProgramando a felicidade
Programando a felicidade
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
 
Apresentação do projeto Python Birds
Apresentação do projeto Python BirdsApresentação do projeto Python Birds
Apresentação do projeto Python Birds
 
Testes automáticos
Testes automáticosTestes automáticos
Testes automáticos
 
Confissões de um arquiteto de software
Confissões de um arquiteto de softwareConfissões de um arquiteto de software
Confissões de um arquiteto de software
 
Angular js desenvolvimento de frontend zen - python nordeste
Angular js   desenvolvimento de frontend zen - python nordesteAngular js   desenvolvimento de frontend zen - python nordeste
Angular js desenvolvimento de frontend zen - python nordeste
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua
 
Google App Engine, Python e Startups - Rupy 2012
Google App Engine, Python e Startups - Rupy 2012Google App Engine, Python e Startups - Rupy 2012
Google App Engine, Python e Startups - Rupy 2012
 
Pycon Brasil
Pycon BrasilPycon Brasil
Pycon Brasil
 
Jugvale
JugvaleJugvale
Jugvale
 

Google App Engine Python Introdução

  • 1. Google App Engine e Python Renzo Nuccitelli Engenheiro de Computação – ITA renzo@nuccitec.com.br
  • 2. Objetivo Explicar a infra do Google App Engine utilizando o framework Python Webapp-CE
  • 3. Roteiro • Google App Engine • Webapp-CE • Problema Base: Cadastro de Pessoas • Controller • Modelo • View • Formulário e Validação • Aplicação Comercial: Revelação Virtual • Conclusões
  • 4. Google App Engine • Cloud do Google • Suporte a 3 linguagens: Java, Python e Go • Modelo SaaS (Software as a Service) • https://appengine.google.com/ • GAE para os mais íntimos
  • 5. Google App Engine : Vantagens • Escalável • Centralizada e excelente documentação • Excelente API • “Pay as you go”, com cota grátis • Abstração da camada de persistência • Definição dos dados na própria linguagem.
  • 6. Google App Engine: Desvantagens • Lock-in da API e dos dados • Restrições nas pesquisas • Restrições na duração de requisições • Adaptação de desenvs acostumados a outros ambientes
  • 7. Webapp-CE • Framework web • Mapeamento de urls ao estilo PHP • Validação de formulários • Transformação de dados para o modelo • Instalação através da simples cópia de arquivos a setup de arquivo app.yaml • http://code.google.com/p/webapp-ce/
  • 8. Problema Base • Construir Applicativo Web para cadastro de pessoas • Ferramentas: Google Launcher + Pydev (Plugin Python para Eclipse) • Será que fazemos em 30 minutos?
  • 9. Controller • Criar controller na pasta private • Delegar handler para cehandler no app.yaml • Mapear links com cengine
  • 10. Modelo • Big Table – Banco de Dados não relacional • Módulo db do GAE • Criar Classe User com Nome (name) e Telefone (phone) e Id do Google (googleid) • Criar método estático para achar usuário corrente logado (getCurrent)
  • 11. View • Templates Django • Utilizar classe Form do pacote ce.forms para gerar o formulário básico • Criar formulário para cadastro de usuário (módulo ce.forms) • Criar lista de usuários cadastrados • Criar classe para renderizar templates
  • 12. Formulário e Validação • Classe Form de ce.forms já faz validação básica • Método validate • Método transform • Possível extender com suas regras de validação e transformação
  • 13. Aplicação Comercial • Site Revelação Virtual www.revelacaovirtual.com.br • Mais de 200 mil fotos transmitidas em 2010 • Desenvolvido com equipe enxuta
  • 14. Conclusões • Apenas introdução, faltou muito coisa (Segurança, Filtros, Cache e etc) • Ambdev simples • Administração via web • Framework enxuto e open source • Opção barata para startups de tecnologia (cota grátis e custo variável)
  • 15. Roteiro • Google App Engine • Webapp-CE • Problema Base: Cadastro de Pessoas • Controller • Modelo • View • Formulário e Validação • Aplicação Comercial Real: Revelação Virtual • Conclusões
  • 16. Objetivo Explicar a infra do Google App Engine utilizando o framework Python Webapp-CE