Aplicações Web com Python e Google App Engine

4,378 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,378
On SlideShare
0
From Embeds
0
Number of Embeds
3,232
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Aplicações Web com Python e Google App Engine

  1. 1. Aplicações web com Python e Google App Engine Rodrigo Amaral
  2. 2. Olá! rodrigoamaral rodrigoamaral.net
  3. 3. http://pug-se.github.io
  4. 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. 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. 6. Platform as a Service (PaaS) ■ Delegar tarefas de administração ■ Permitir escalabilidade ■ Reduzir os custos iniciais ■ Prover serivços auxiliares
  7. 7. Google App Engine Executar aplicações web na infraestrutura do Google
  8. 8. Python ■ Tipagem dinâmica ■ Uso geral ■ Multiparadigma ■ Sintaxe clara e legível ■ Introspecção poderosa ■ Rica biblioteca padrão
  9. 9. Python cabe no seu cérebro JAVA class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } PYTHON print "Hello, World!"
  10. 10. Python cabe no seu cérebro (2) QUADRADO DOS NÚMEROS PARES EM UM VETOR 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]
  11. 11. Python cabe no seu cérebro (3) SORTEIO SIMPLES import random sorteio = 'Pedro Maria Paulo Joana Renato Sofia'.split() print random.choice(sorteio)
  12. 12. Características do Google App Engine
  13. 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. 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. 15. Autenticação e autorização ■ Google Accounts ■ Users API
  16. 16. Serviços ■ URL Fetch ■ Mail ■ XMPP ■ Memcache ■ Manipulação de imagens ■ Fila de tarefas
  17. 17. Ambiente de execução de aplicações Python
  18. 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. 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. 20. Estrutura da aplicação app.yaml Identificação Módulos da aplicação Versão requisição Cliente Resolução de URLs Permissões Frameworks e bibliotecas resposta APIs de serviços script.py Templates Aplicação WSGI Datastore
  21. 21. Exemplo Entendendo o código de uma aplicação simples
  22. 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. 23. app.yaml application: relogio version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: - url: /.* script: relogio.aplicacao
  24. 24. Servidor de aplicação local dev_appserver.py Linha de comando # dev_appserver.py <diretorio_da_aplicacao> 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. 25. Resultado no browser
  26. 26. Upload appcfg.py # appcfg.py update <diretorio_da_aplicacao>
  27. 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. 28. Obrigado!

×