Tutorial Google App Engine Python

Olá mundo

Ao aprender novas tecnologias, o primeiro programa que desenvolvemos é um "Olá Mundo". O propósito deste programa é validar a instalação de todas as ferramentas de nosso ambiente de trabalho, garantindo que está tudo funcionando corretamente.

Iniciando um novo projeto

Para iniciar um projeto do App Engine Python é necessário que você adicione um arquivo de configuração app.yaml em uma pasta, e dentro dela insira o código Python e demais arquivos de sua aplicação, como templates, páginas estáticas HTML, imagens, etc.

Em nosso exemplo, vamos criar uma nova pasta em nossa pasta pessoal, chamada ola-mundo. No Nitrous, clique com o botão direito sobre a pasta workspace e em seguida escolha a opção New Folder.

O arquivo de configuração

O primeiro passo é criar um arquivo com o nome app.yaml. Este arquivo define alguns parametros de configuração de sua aplicação para o App Engine.

Abra o seu editor de textos ou IDE e crie este novo arquivo dentro da pasta ola-mundo com o nome app.yaml e o seguinte conteúdo:

application: ola-mundo
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.application

O arquivo de configuração possui os seguintes parâmetros:

  • application: define o ID do seu projeto para o App Engine. O ID deve ser único, e é gerado automaticamente quando formos publicar o aplicativo em produção. Por hora, podemos deixar o valor ola-mundo.
  • version: define a versão de sua aplicação.
  • runtime: define que estamos fazendo um programa em Python.
  • api_version: define qual a versão da API utilizaremos. O único valor válido atualmente é 1.
  • threadsafe: permite que nossa aplicação responda à várias requisições simultaneamente. Isso reduz custos e otimiza performance, então deixamos ativo.
  • handlers: esta é a parte do arquivo onde configuramos como nossa aplicação web vai responder às requisições, mapeando scripts ou arquivos para serem processados dependendo de qual a página é acessada.

O arquivo acima mapeia todas as requisições dos usuários para serem tratadas pelo script main.application.

Escrevendo o código programa main.py

Agora que nossa aplicação está corretamente configurada, vamos iniciar o desenvolvimento de nosso primeiro código. O código que iremos criar é responsável por receber uma requisição HTTP, e produzir uma resposta. Em nosso caso, a resposta será a frase "Olá mundo!".

Para isso, dentro da pasta ola-mundo, crie um novo arquivo com o nome main.py, e o seguinte conteúdo:

import webapp2

class OlaMundo(webapp2.RequestHandler):
    def get(self):
        self.response.headers.add('Content-Type', 'text/html')
        self.response.write('Ola, mundo')

application = webapp2.WSGIApplication([
    ('/', OlaMundo)
], debug=True)

O código acima utiliza um dos recursos do App Engine, o framework webapp2. Com ele, basta estendermos o webapp2.RequestHandler, responsável por produzir conteúdo dinamicamente por meio da propriedade response.

O seu projeto deve estar com este layout:

Overview do projeto

Iniciando o servidor de desenvolvimento

O kit de desenvolvimento do App Engine possui um servidor que podemos executar para visualizar nossa aplicação.

Para iniciar o servidor de desenvolvimento, abra o prompt de comandos e navegue até a pasta onde está o seu projeto. Em seguida, execute o comando:

dev_appserver.py app.yaml --host 0.0.0.0

Ao executar este comando, o App Engine mostrará algumas mensagens de inicialização, e você verá uma mensagem semelhante à esta, indicando que a aplicação foi iniciada corretamente:

$ dev_appserver.py app.yaml --host 0.0.0.0
INFO  sdk_update_checker.py:242] Checking for updates to the SDK.
INFO  api_server.py:171] Starting API server at: http://localhost:58774
INFO  dispatcher.py:182] Starting module "default" running at: http://localhost:8080
INFO  admin_server.py:117] Starting admin server at: http://localhost:8000

Com o servidor apripriadamente iniciado em seu ambiente, vamos agora visualizar nossa aplicação navegando até o endereço http://localhost:8080/. Você deve visualizar o texto "Ola, mundo" em seu navegador.

Dica: no Nitrous.IO, você vai deve utilizar o menu Preview -> e escolher a porta 8080, ao invés de utilizar o link para localhost.

Olá mundo