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

Aplicações Web com Python e Google App Engine

Aplicações Web com Python e Google App Engine

Visão geral dos recursos do Google App Engine e seu ambiente de execução de aplicações em Python

Avatar for Rodrigo Amaral

Rodrigo Amaral

December 11, 2013
Tweet

More Decks by Rodrigo Amaral

Other Decks in Programming

Transcript

  1. Aplicações web são legais ▪ Multiplataforma ▪ Acessadas de qualquer

    lugar ▪ Fácil distribuição ▪ Atualização instantânea ▪ Correção de bugs controlada
  2. Mas as coisas podem ficar complicadas ▪ Múltiplos acessos simultâneos

    ▪ Administração de servidores ▪ Precisa de alta disponibilidade ▪ Custos de hospedagem ▪ Programação precisa ser ágil
  3. Platform as a Service (PaaS) ▪ Delegar tarefas de administração

    ▪ Permitir escalabilidade ▪ Reduzir os custos iniciais ▪ Prover serivços auxiliares
  4. Python ▪ Tipagem dinâmica ▪ Uso geral ▪ Multiparadigma ▪

    Sintaxe clara e legível ▪ Introspecção poderosa ▪ Rica biblioteca padrão
  5. Python cabe no seu cérebro class HelloWorld { public static

    void main(String[] args) { System.out.println("Hello, World!"); } } print "Hello, World!" JAVA PYTHON
  6. Python cabe no seu cérebro (2) vetor = [1, 2,

    3, 4, 5, 6, 7] quadrado_pares = [n ** 2 for n in vetor if n % 2 == 0] print(quadrado_pares) # mostra [4, 16, 36] QUADRADO DOS NÚMEROS PARES EM UM VETOR
  7. Python cabe no seu cérebro (3) import random sorteio =

    'Pedro Maria Paulo Joana Renato Sofia'.split() print random.choice(sorteio) SORTEIO SIMPLES
  8. Sandbox ▪ Ambiente protegido ▪ Facilita distribuição da demanda ▪

    Não escreve no sistema de arquivos ▪ Somente HTTP(S) nas portas padrão ▪ Não dispara subprocessos ▪ Não enxerga outras aplicações
  9. Armazenamento de dados ▪ Datastore • banco de dados não-relacional

    • entidades, tipos, propriedades • schemaless ▪ Google Cloud SQL • banco de dados relacional ▪ Google Cloud Storage
  10. Serviços ▪ URL Fetch ▪ Mail ▪ XMPP ▪ Memcache

    ▪ Manipulação de imagens ▪ Fila de tarefas
  11. Python App Engine SDK ▪ Servidor de aplicação que simula

    o ambiente App Engine • dev_appserver.py ▪ Utilitário para upload • appcfg.py ▪ Interface gráfica (Windows e Mac) ▪ Python 2.7
  12. Web Server Gateway Interface (WSGI) ▪ Especifica a comunicação entre

    servidores web e aplicações ▪ Se o framework é compatível, funciona com o App Engine ▪ Django, Flask, Pyramid, Bottle etc. ▪ webapp2
  13. Estrutura da aplicação Datastore Templates Cliente app.yaml Identificação Versão Resolução

    de URLs Permissões script.py Aplicação WSGI Módulos da aplicação Frameworks e bibliotecas APIs de serviços requisição resposta
  14. relogio.py import webapp2 import datetime class PaginaPrincipal(webapp2.RequestHandler): def get(self): self.response.headers['Content-type']

    = 'text/plain' self.response.write(datetime.datetime.now()) aplicacao = webapp2.WSGIApplication([ ('/', PaginaPrincipal) ], debug=True)
  15. Servidor de aplicação local dev_appserver.py # dev_appserver.py <diretorio_da_aplicacao> Linha de

    comando INFO 2013-12-09 19:58:56,850 api_server.py:138] Starting API server at: http://localhost:50958 INFO 2013-12-09 19:58:56,863 dispatcher.py:171] Starting module "default" running at: http://localhost:8080 INFO 2013-12-09 19:58:56,867 admin_server.py:117] Starting admin server at: http://localhost:8000
  16. Para saber mais Google Developers https://developers.google.com/appengine/ Programming Google App Engine

    Livro - Editora O’Reilly Stack Overflow http://stackoverflow.com/questions/tagged/google-app-engine