Nesta etapa, você faz download, implanta e testa o aplicativo Jogo da velha em seu computador local. Em vez de usar o serviço da Web Amazon DynamoDB, você fará download do DynamoDB para seu computador e criará a tabela necessária localmente.
1.1: baixar e instalar os pacotes obrigatórios
Para testar este aplicativo localmente, será necessário o seguinte:
-
Python
-
Flask (um microframework para Python)
-
AWS SDK for Python (Boto)
-
Execução do DynamoDB no computador
-
Git
Para aproveitar essas ferramentas, faça o seguinte:
-
Instalar o Python. Para obter instruções detalhadas, acesse Fazer download do Python
. O aplicativo Jogo da velha foi testando com a versão 2.7 do Python.
-
Instale o Flask e o AWS SDK for Python (Boto) usando o Python Package Installer (PIP):
-
Instale o PIP.
Para obter instruções, consulte Instalar PIP
. Na página de instalação, selecione o link get-pip.py e, em seguida, salve o arquivo. Em seguida, abra um terminal de comando como administrador e digite as informações a seguir no prompt de comando. python.exe get-pip.py
No Linux, você não especifica a extensão
.exe
. Você só especificapython get-pip.py
. -
Usando o PIP, instale os pacotes Flask e Boto usando o código a seguir.
pip install Flask pip install boto pip install configparser
-
-
Baixe o DynamoDB para o seu computador. Para obter instruções sobre como executá-lo, consulte Configurar o DynamoDB local (versão para download) .
-
Faça download do aplicativo Jogo da velha:
-
Instale o Git. Para obter instruções, consulte downloads do git
. -
Execute o código a seguir para fazer download da aplicação.
git clone https://github.com/awslabs/dynamodb-tictactoe-example-app.git
-
1.2: testar a aplicação de jogo
Para testar a aplicação Jogo da velha, é necessário executar o DynamoDB localmente no seu computador.
Para executar a aplicação Jogo da velha
-
Inicie o DynamoDB.
-
Inicie o servidor web do aplicativo Jogo da velha.
Para isso, abra um terminal de comando, navegue para a pasta na qual você fez download do aplicativo jogo da velha e execute o aplicativo localmente usando o código a seguir.
python.exe application.py --mode local --serverPort 5000 --port 8000
No Linux, você não especifica a extensão
.exe
. -
Abra seu navegador da web e digite as informações a seguir.
http://localhost:5000/
O navegador mostra a página inicial.
-
Digite
user1
na caixa Log in (Login) para fazer login como user1.nota
Este aplicativo de exemplo não realiza autenticação de usuário. O ID de usuário só é usado para identificar os jogadores. Se dois jogadores fizerem login com o mesmo alias, o aplicativo funciona como se você estivesse jogando em dois navegadores diferentes.
-
Se esta for a primeira vez que você está jogando, uma página solicitando a criação da tabela obrigatória (
Games
) no DynamoDB será mostrada. Selecione CREATE TABLE (Criar tabela). -
Selecione CREATE (Criar) para criar o primeiro jogo da velha.
-
Digite
user2
na caixa Choose an Opponent (Escolher um oponente) e selecione Create Game! (Criar jogo!).Desse modo, o jogo é criado adicionando um item na tabela
Games
. Isso define o status do jogo comoPENDING
. -
Abra outra janela do navegador e digite as informações a seguir.
http://localhost:5000/
O navegador passa informações por meio de cookies. Portanto, você deve usar o modo incognito ou navegação privada para que seus cookies não sejam estendidos.
-
Faça login como user2.
É exibida uma página que mostra um convite pendente do user1.
-
Selecione accept (aceitar) para aceitar o convite.
A página do jogo é exibida com uma grade de jogo da velha vazia. A página também mostra informações relevantes do jogo, como o ID do jogo, de quem é a vez e o status do jogo.
-
Jogue o jogo.
Para cada movimento do usuário, o serviço da Web envia uma solicitação para o DynamoDB atualizar condicionalmente o item do jogo na tabela Games
. Por exemplo, as condições garantem que o movimento é válido, que o quadrado que o usuário escolheu está disponível e que era a vez do usuário que fez o movimento. Para um movimento válido, a operação de atualização adiciona um novo atributo correspondente à seleção no quadro. A operação de atualização também define o valor do atributo existente para o usuário que pode fazer o próximo movimento.
Na página do jogo, a aplicação faz chamadas JavaScript assíncronas a cada segundo, por até 5 minutos, para verificar se o estado do jogo no DynamoDB foi alterado. Caso tenha sido, o aplicativo atualiza a página com novas informações. Depois de cinco minutos, o aplicativo para de fazer as solicitações e você precisa atualizar a página para obter informações atualizadas.