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.
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 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
.
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:
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.