O Google Code é oferecido em: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
O padrão CGI é simples, mas seria complicado escrever manualmente todo o código utilizado por ele. As estruturas de aplicativo da web cuidam desses detalhes para você. Assim, você pode concentrar seus esforços de desenvolvimento nos recursos do seu aplicativo. O Google App Engine suporta qualquer estrutura programada em Python puro que se comunique com CGI (e qualquer outra estrutura compatível com WSGI usando um adaptador CGI), incluindo Django, CherryPy, Pylons e web.py. Você pode colocar a estrutura escolhida em um pacote com o código do seu aplicativo, colocando uma cópia do código dentro do diretório do aplicativo.
O Google App Engine inclui uma estrutura simples e própria de aplicativo da web, denominada webapp. A estrutura do webapp já está instalada no ambiente do Google App Engine e no SDK. Você não precisa colocá-la em um pacote para que o código do seu aplicativo possa usá-la. Usaremos o webapp no restante deste tutorial.
Um aplicativo webapp contém três partes:
RequestHandler que processam solicitações e criam respostasWSGIApplication que redireciona as solicitações recebidas para os manipuladores, com base no URLWSGIApplication usando um adaptador de CGIVamos reescrever nossa saudação amigável como um aplicativo webapp. Edite helloworld/helloworld.py e substitua o conteúdo pelo seguinte:
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
application = webapp.WSGIApplication(
[('/', MainPage)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Recarregue http://localhost:8080/ no navegador para ver a nova versão em ação. (Reinicie o seu servidor da web se você o interrompeu, executando o comando descrito em "Hello, World!".)
O módulo webapp está no pacote google.appengine.ext. Esse módulo é fornecido no SDK e também no ambiente de execução de produção.
Esse código define um manipulador de solicitações, MainPage, mapeado para o URL raiz (/). Quando o webapp recebe uma solicitação HTTP GET para o URL /, ele gera uma instância da classe MainPage e chama o método get da instância. Dentro do método, há informações sobre a solicitação que podem ser acessadas por meio do self.request. Normalmente, o método define as propriedades do self.response para preparar a resposta e é finalizado em seguida. webapp envia uma resposta com base no estado final da instância de MainPage.
O aplicativo em si é representado por uma instância de webapp.WSGIApplication. O parâmetro debug=true passado ao seu construtor instrui o webapp a imprimir rastreamentos em pilha para a saída do navegador caso um manipulador encontre um erro ou cause uma exceção desconhecida. Você pode remover essa opção da versão final do seu aplicativo.
A função run_wsgi_app() assume uma instância de WSGIApplication (ou outro objeto de aplicativo compatível com WSGI) e o executa no ambiente CGI do Google App Engine. run_wsgi_app() é semelhante ao adaptador WSGI-para-CGI fornecido pelo módulo wsgiref na biblioteca padrão do Python, mas inclui alguns recursos adicionais. Por exemplo, ele pode detectar automaticamente se o aplicativo está sendo executado no servidor de desenvolvimento ou no Google App Engine e exibir erros no navegador caso esteja sendo executado no servidor de desenvolvimento.
Usaremos mais alguns recursos do webapp posteriormente neste tutorial. Para obter mais informações sobre o webapp, consulte a Referência do webapp.
As estruturas facilitam o desenvolvimento de aplicativos da web, com mais rapidez e menor propensão a erros. O webapp é apenas uma das muitas estruturas disponíveis para Python. Agora que estamos usando uma estrutura, vamos adicionar alguns recursos.
Vá para Como usar o serviço de Usuários.