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

7c8162d1005bd8ea7ec6d4859852da46?s=128

Rodrigo Amaral

December 11, 2013
Tweet

Transcript

  1. Aplicações web com Python e Google App Engine Rodrigo Amaral

  2. Olá! rodrigoamaral rodrigoamaral.net

  3. http://pug-se.github.io

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

    lugar ▪ Fácil distribuição ▪ Atualização instantânea ▪ Correção de bugs controlada
  5. 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
  6. Platform as a Service (PaaS) ▪ Delegar tarefas de administração

    ▪ Permitir escalabilidade ▪ Reduzir os custos iniciais ▪ Prover serivços auxiliares
  7. Google App Engine Executar aplicações web na infraestrutura do Google

  8. Python ▪ Tipagem dinâmica ▪ Uso geral ▪ Multiparadigma ▪

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

    void main(String[] args) { System.out.println("Hello, World!"); } } print "Hello, World!" JAVA PYTHON
  10. 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
  11. Python cabe no seu cérebro (3) import random sorteio =

    'Pedro Maria Paulo Joana Renato Sofia'.split() print random.choice(sorteio) SORTEIO SIMPLES
  12. Características do Google App Engine

  13. 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
  14. Armazenamento de dados ▪ Datastore • banco de dados não-relacional

    • entidades, tipos, propriedades • schemaless ▪ Google Cloud SQL • banco de dados relacional ▪ Google Cloud Storage
  15. Autenticação e autorização ▪ Google Accounts ▪ Users API

  16. Serviços ▪ URL Fetch ▪ Mail ▪ XMPP ▪ Memcache

    ▪ Manipulação de imagens ▪ Fila de tarefas
  17. Ambiente de execução de aplicações Python

  18. 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
  19. 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
  20. 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
  21. Exemplo Entendendo o código de uma aplicação simples

  22. 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)
  23. app.yaml application: relogio version: 1 runtime: python27 api_version: 1 threadsafe:

    true handlers: - url: /.* script: relogio.aplicacao
  24. 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
  25. Resultado no browser

  26. Upload appcfg.py # appcfg.py update <diretorio_da_aplicacao>

  27. 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
  28. Obrigado!