Pesquisar este blog

segunda-feira, 8 de dezembro de 2008

Hello World com GAE

Pronto! Arranjei tempo para acabar(começar?!) o tutorial do Google App Engine! Vou tentar ser bem bem direto, então, mãos a obra:

Este será um aplicativo de hello world, que, para quem não conhece, é um exemplo de aplicativo mínimo que se pode fazer com uma determinada tecnologia. Para começar, baixe a última versão do GAE no site do projeto. Feito isso, descompacte o arquivo em uma pasta qualquer(sejamos organizados, ok?) e criemos um link na pasta de arquivos executáveis apontando para os arquivos dev_appserver.py e para o appcfg.py (lembrando que esta é uma instalação para o linux). O arquivo dev_appserver.py vai nos permitir executar o servidor de desenvolvimento e o appcfg.py vai nos permitir fazer o deploy do aplicativo com apenas um comando =D.

Criando os links
Entre na pasta descompactada do GAE e escreva os seguintes comandos no terminal:

sudo ln -s `pwd`/dev_server.py /usr/local/bin
sudo ln -s `pwd`/appcfg.py /usr/local/bin

Os comandos acima vão, respectivamente, criar duas ligações do tipo "soft" na pasta /usr/local/bin. Para ver se tudo deu certo, abra um outro terminal e escreva dev_server.py. Se aparecer qualquer coisa diferente de uma mensagem de erro, você está no caminho certo. Agora vamos criar nosso projeto.

Criando o aplicativo
Aplicativos do GAE possuem uma estrutura padrão que você terá que criar na munheca. É isso aí, não tem comandozinho mágico que cria um aplicativo do nada, como é o caso do django, por isso, sugiro que, quando você estiver bem familiarizado com o GAE, crie você uma espécie de projeto template, que será a base de quaisquer outros projetos GAE que você queira começar.
Um template minimalista para o HelloWorld teria a seguinte estrutura:

app/
------app.yaml
------main.py

É isso aí, dois arquivozinhos. Um arquivo yaml(que é um formato de troca de informações e armazenamento de configurações bastante simples e poderoso) e um arquivo main.py, que será o arquivo principal da aplicação. Normalmente arquivos main.py são utilizados como arquivos principais de aplicativos desktop do python, não é mesmo? Bem, no GAE também se usa o bichinho como arquivo principal. Não que seja obrigatório, mas como todo mundo usa(com GAE), e eu gostei, vamos usar também.

Explicando o que vai aonde
O arquivo app.yaml, como é esperado, armazena as configurações do seu aplicativo. O django, por exemplo, usa um arquivo settings.py para manter as configurações do projeto, o GAE usa o app.yaml, servlets usam o web.xml, e assim vai. É uma questão de escolha, entretanto, teoricamente, a utilização do xml para arquivos de configuração é a pior escolha das três citadas.

A estrutura do arquivo de configuração app.yaml deve ser da seguinte forma:

application: helloworld
version: 1
runtime: python
api_version: 1

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

O texto acima deve estar em acordo com as normas de formatação do yaml. Caso não as conheça, veja o link.

Parâmetros
  • application: define o nome do aplicativo, que deve ser o mesmo nome cadastrado na sua conta do GAE.
  • version: informa a versão atual do seu aplicativo
  • runtime: informa a versão do python que deve ser utilizada no aplicativo. Por enquanto, apenas "python" é permitido.
  • api_version: informa a versão da api do GAE a ser utilizada.
Fora os parâmetros acima, ainda existe, definido em nosso exemplo, um outro, o handlers. O handlers é uma lista de mapeamentos de url que desembocam em arquivos .py responsáveis por tratar as requisições com aquele padrão de url.

Exemplo: o GAE, assim como o django, se baseia em expressões regulares para escolher quem vai tratar qual url. Um padrão de url como o do exemplo "/.*", define que uma url, com qualquer path depois dela, deve ser direcionada para o arquivo main.py.

- url: /.*

script: main.py

- url: <= define que o padrão de url vem logo a segui. script: <= define o script python que irá interpretar a requisição. Bem, basicamente é isso. Agora vamos escrever nosso main.py. Lembrando que o GAE usa CGI, então.
Nosso main.py é bem simples, o código abaixo gera o nosso helloworld:
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
Certo, o esquema do helloworld acima é bem simples. A saída padrão do GAE é a resposta gerada para o cliente acessando a página. Então, quando usamos o print para escrever algo, estamos, na verdade, criando nossa página do GAE.
Na primeira linha, escrevemos o content-type da página, que informa ao navegador web qual o tipo do arquivo que ele vai receber, criamos uma linha em branco, para poder inserir o conteúdo, e printamos 'Hello World'.

Agora abra um terminal, vá para a pasta onde está o seu projeto GAE, e dê o comando "dev_server.py nomeDoProjeto". Com esse comando, seu projeto irá subir. Agora vá no navegador e acesse "localhost:8080/". Seu hello world com GAE irá subir. Rrsrsrs, ufa! Cabou. Talvez, entre hoje e o infinito, eu faça outra postagem sobre como usar templates e acesso ao banco. Por agora, vou acabar aqui o forumBR que anda meio abandonado, e ver quanto eu vou pagar no meu contrabaixo. =D Abraço negada!

Nenhum comentário:

Postar um comentário