arrow_back

Desenvolvimento de apps: como armazenar dados de aplicativos no Cloud Datastore – Python

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Desenvolvimento de apps: como armazenar dados de aplicativos no Cloud Datastore – Python

Lab 50 minutos universal_currency_alt 5 créditos show_chart Intermediário
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP184

Laboratórios autoguiados do Google Cloud

Visão geral

O Google Cloud Datastore é um banco de dados de documentos NoSQL criado para oferecer escalonamento automático, alto desempenho e facilidade no desenvolvimento de aplicativos. Neste laboratório, você usará o Datastore como o armazenamento de dados para um aplicativo de teste on-line. Você também definirá as configurações do aplicativo para recuperar os dados do Datastore e mostrá-los no teste.

O esqueleto do aplicativo de teste já foi criado. Você vai clonar o repositório que contém o esqueleto usando o Google Cloud Shell, analisar o código no editor do Cloud Shell e acessá-lo no recurso de visualização da Web do Cloud Shell. Em seguida, você modificará o código que armazena dados para usar o Cloud Datastore.

Objetivos

Neste laboratório, você aprenderá a fazer o seguinte:

  • Usar o Cloud Shell como seu ambiente de desenvolvimento
  • Visualizar o aplicativo
  • Atualizar o código do aplicativo para integrar o Cloud Datastore

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Iniciar o editor de código do Cloud Shell

  • No Cloud Shell, clique em Abrir editor para iniciar o editor de código. Talvez seja necessário clicar em Abrir em nova janela.

O botão &quot;Abrir editor&quot;.

Observação: o editor de código abre em uma guia separada do navegador.

Tarefa 1: criar um ambiente virtual

  1. Clique no ícone Abrir Terminal.

Os ambientes virtuais Python são usados para isolar do sistema a instalação de pacotes.

virtualenv -p python3 vrenv
  1. Ative o ambiente virtual:
source vrenv/bin/activate

Tarefa 2: preparar o aplicativo de teste

O repositório que contém o aplicativo de teste está no GitHub.com. Nesta seção, você usará o Cloud Shell para inserir os comandos que clonam o repositório e executam o aplicativo.

Clonar o código-fonte no Cloud Shell

  • Clone o repositório para a classe:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Configurar e executar o aplicativo de teste

  1. Mude o diretório de trabalho:

    cd ~/training-data-analyst/courses/developingapps/python/datastore/start
  2. Exporte a variável de ambiente GCLOUD_PROJECT que faz referência ao ID do projeto.

    export GCLOUD_PROJECT=$DEVSHELL_PROJECT_ID Observação: ID do projeto no Cloud Shell

    Enquanto trabalhar no Cloud Shell, você terá acesso ao ID do projeto na variável de ambiente $DEVSHELL_PROJECT_ID.
  3. Instale as dependências do aplicativo e ignore os avisos de incompatibilidade:

    pip install -r requirements.txt
  4. Execute o aplicativo:

    python run_server.py

    Ele estará em execução quando aparecer uma mensagem semelhante a esta:

    * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 179-313-240

Revisar o aplicativo de teste

  1. No Cloud Shell, clique em Visualização na Web > Visualizar na porta 8080 para exibir o aplicativo de teste.

    A opção &quot;Visualização na porta 8080&quot; destacada no menu de visualização da web.

    Aparecerá a interface do usuário do aplicativo da Web. As três partes principais do aplicativo são:

    • Create Question
    • Take Test
    • Leaderboard

    A página &quot;Welcome to the Quite Interesting Quiz&quot; exibindo três partes: Create Question, Take Test e Leaderboard.

  2. Na barra de navegação, clique em Create Question.

    Aparecerá um formulário simples com caixas de texto para as perguntas e respostas, além de botões de opção para selecionar a alternativa correta.

    Observação: os autores do teste podem adicionar perguntas nesta parte do aplicativo. Ela é criada como um aplicativo da Web do lado do servidor em Flask, o conhecido framework Python.
  3. Na barra de navegação, clique em Fazer o teste e depois GCP para acessar as perguntas do Google Cloud.

    Aparecerá uma pergunta de exemplo.

    O modelo de pergunta de exemplo com os exemplos de respostas e o botão &quot;Enviar resposta&quot;.

    Os participantes do teste responderão às perguntas nesta parte do aplicativo.

    Observação: ela é criada como um aplicativo da Web do lado do cliente.
  4. Para voltar ao aplicativo do lado do servidor, clique no link Quite Interesting Quiz na barra de navegação.

Tarefa 3: examinar o código do aplicativo de teste

Neste laboratório, você vai exibir e editar arquivos. Use os editores de shell instalados no Cloud Shell, como nano ou vim, ou o editor de código do Cloud Shell.

Este laboratório usará o editor do Cloud Shell para revisar o código do aplicativo de teste.

Revise o aplicativo da Web Flask

  1. Navegue até a pasta /training-data-analyst/courses/developingapps/python/datastore/start usando o painel do navegador de arquivos no lado esquerdo do editor.
Observação: os caminhos são relativos a essa pasta. O aplicativo é um Python padrão criado com o framework de aplicativos Flask.
  1. Selecione o arquivo ...run_server.py.

    Esse arquivo contém o entrypoint do aplicativo e o executa na porta 8080.

  2. Selecione o arquivo ...quiz/_init_.py.

    Ele importa rotas para o aplicativo da Web e a API REST.

  3. Selecione os arquivos ...quiz/webapp/questions.py e ...quiz/webapp/routes.py.

    Eles contêm as rotas que mapeiam URIs para os gerenciadores que exibem o formulário e coletam os dados de formulário postados pelos autores do teste no aplicativo da Web.

  4. Selecione a pasta ...quiz/webapp/templates.

    Ela contém modelos de interface do usuário do aplicativo da Web que utilizam modelos Jinja2.

  5. Visualize o arquivo ...quiz/webapp/templates/add.html.

    Ele contém o modelo Jinja2 do formulário Create Question.

    Observe que há uma lista de seleção de teste, caixas de texto onde o autor pode digitar a pergunta e as respostas, além de botões de opção para escolher a resposta correta.

  6. Selecione o arquivo ...quiz/api/api.py.

    Ele contém o gerenciador que envia dados JSON aos alunos que estão fazendo um teste.

  7. Selecione o arquivo ...quiz/gcp/datastore.py.

    É o arquivo onde você escreve o código do Datastore para salvar e carregar perguntas do teste no Cloud Datastore.

Esse módulo será importado no aplicativo da Web e na API.

Tarefa 4: como adicionar entidades ao Cloud Datastore

Nesta seção, você criará o código para salvar dados de formulário no Cloud Datastore.

Importante: atualize o código nas seções marcadas da seguinte maneira:

# TODO

# END TODO

Para aprender ainda mais, tente escrever o código sem consultar o bloco de código completo no final da seção. Além disso, revise o código, os comentários inline e a documentação da API Datastore Client para o Cloud Datastore relacionada.

Criar um aplicativo do App Engine para provisionar o Cloud Datastore

  1. Volte ao Cloud Shell e interrompa o aplicativo pressionando Ctrl+c.

  2. Para criar um aplicativo do App Engine no seu projeto, use:

    gcloud app create --region "{{{project_0.startup_script.app_region | REGION }}}"

Esta mensagem aparecerá quando o App Engine tiver sido criado:

Creating App Engine application in project [qwiklabs-gcp-f67238775c00cfaa] and region {{{project_0.startup_script.app_region | REGION}}}....done. Success! The app is now created. Please use `gcloud app deploy` to deploy your first app. Observação: você ainda não está usando o App Engine para seu aplicativo da Web. Porém, o Cloud Datastore exige que você crie um aplicativo do App Engine no projeto.

Clique em Verificar meu progresso abaixo para conferir seu andamento no laboratório.

Crie um aplicativo do App Engine

Importar e usar o módulo do Datastore em Python

  1. Abra o arquivo ...quiz/gcp/datastore.py no editor do Cloud Shell e adicione o código Updated datastore.py listado abaixo para realizar o seguinte:

  2. importar o módulo os;

  3. usar o módulo os para receber a variável de ambiente GCLOUD_PROJECT;

  4. importar o módulo datastore do pacote google.cloud;

  5. declarar um objeto de cliente datastore.Client chamado datastore_client.

datastore.py atualizado

# TODO: Importe o módulo os import os # END TODO # TODO: Acesse a variável de ambiente GCLOUD_PROJECT project_id = os.getenv('GCLOUD_PROJECT') # END TODO from flask import current_app # TODO: Importe o módulo Datastore do pacote do google.cloud from google.cloud import datastore # END TODO # TODO: Crie um objeto do cliente do Cloud # O objeto do cliente do Datastore exige o ID do projeto. # Passe pelo ID do projeto que você pesquisou da # variável do ambiente anteriormente datastore_client = datastore.Client(project_id) # END TODO

Criar o código para gerar uma entidade do Cloud Datastore

  1. Ainda em ...quiz/gcp/datastore.py, acesse a função save_question() e remova a instrução pass do marcador atual. Adicione o seguinte código de função datastore.py - save_question() listado abaixo para realizar o seguinte:
  • usar o objeto do cliente Datastore para criar uma chave de uma entidade do Datastore de tipo 'Question';
  • usar o Datastore para criar uma entidade de pergunta do Datastore com a chave;
  • iterar os itens no dicionário de valores fornecidos pelo formulário do aplicativo da Web;
  • atribuir cada chave e valor ao objeto da entidade do Datastore (no corpo do loop);
  • usar o cliente do Datastore para salvar os dados.

datastore.py - função save_question()

""" Create and persist and entity for each question The Datastore key is the equivalent of a primary key in a relational database. There are two main ways of writing a key: 1. Specify the kind, and let Datastore generate a unique numeric id 2. Specify the kind and a unique string id """ def save_question(question): # TODO: Crie uma chave para uma entidade do Datastore # do tipo Question key = datastore_client.key('Question') # END TODO # TODO: Crie um objeto da entidade do Datastore usando a chave q_entity = datastore.Entity(key=key) # END TODO # TODO: Iterar os valores de formulário fornecidos à função for q_prop, q_val in question.items(): # END TODO # TODO: Atribua cada chave e valor à entidade do Datastore q_entity[q_prop] = q_val # END TODO # TODO: Salve a entidade datastore_client.put(q_entity) # END TODO
  1. Salve o datastore.py.

Execute o aplicativo e crie uma entidade do Cloud Datastore

  1. Salve o arquivo ...quiz/gcp/datastore.py e depois volte ao prompt de comando do Cloud Shell.
  2. Para iniciar o aplicativo, execute o seguinte comando:
python run_server.py
  1. No Cloud Shell, clique em Visualização na Web > Visualizar na porta 8080 para ver o aplicativo de teste.
  2. Clique em Create Question.
  3. Preencha o formulário com os valores a seguir e clique em Save.

Campo do formulário

Valor

Author

Your Name

Quiz

Google Cloud Platform

Title

Which company owns Google Cloud?

Answer 1

Amazon

Answer 2

Google (selecione o botão de opção "Answer 2")

Answer 3

IBM

Answer 4

Microsoft

Você precisa voltar para a página inicial do aplicativo.

  1. No console, acesse o Menu de navegação > Datastore.
  2. Selecione o banco de dados padrão e clique em Entidades.

Aparecerá uma nova pergunta.

Clique em Verificar meu progresso abaixo para conferir seu andamento no laboratório.

Crie uma entidade do Cloud Datastore

Recupere entidades do Cloud Datastore

Nesta seção, você escreverá um código para recuperar dados da entidade do Cloud Datastore e visualizar sua pergunta no aplicativo.

Escreva o código para recuperar entidades do Cloud Datastore

  1. No editor de código, no arquivo ...quiz/gcp/datastore.py, remova o código da função list_entities(quiz, redact) e o substitua por uma consulta que:
  • recupere as entidades de pergunta para um teste específico do Cloud Datastore;
  • use o cliente do Datastore para buscar a consulta e use os dados retornados para criar uma lista;
  • enumere a lista de itens e promova o identificador de chave de cada entidade a uma propriedade de nível superior;
  • retorne os resultados.
  1. Substitua este código:
""" Returns a list of question entities for a given quiz - filter by quiz name, defaulting to gcp - no paging - add in the entity key as the id property - if redact is true, remove the correctAnswer property from each entity """ def list_entities(quiz='gcp', redact=True): return [{'quiz':'gcp', 'title':'Sample question', 'answer1': 'A', 'answer2': 'B', 'answer3': 'C', 'answer4': 'D', 'correctAnswer': 1, 'author': 'Nigel'}] """

Por este:

""" Returns a list of question entities for a given quiz - filter by quiz name, defaulting to gcp - no paging - add in the entity key as the id property - if redact is true, remove the correctAnswer property from each entity """ def list_entities(quiz='gcp', redact=True): query = datastore_client.query(kind='Question') query.add_filter('quiz', '=', quiz) results =list(query.fetch()) for result in results: result['id'] = result.key.id if redact: for result in results: del result['correctAnswer'] return results """
  1. Salve o datastore.py.

Executar o aplicativo e testar a consulta do Cloud Datastore

Agora teste se sua pergunta é recuperada do Datastore e carregada no aplicativo de teste.

  1. No Cloud Shell, pressione Ctrl+C para interromper o aplicativo e depois o reinicie:
python run_server.py
  1. Visualize o teste: se ele ainda estiver aberto na janela, atualize o navegador. Caso contrário, clique em Web preview > Preview on port 8080.

  2. Clique em Take Test > GCP.

Vão aparecer as perguntas que criou.

A pergunta do teste com uma lista de respostas possíveis e o botão &quot;Enviar resposta&quot;.

Parabéns!

Aqui termina o laboratório autoguiado "Desenvolvimento de apps: como armazenar dados de aplicativos no Cloud Datastore – Python". Você usou o Datastore para armazenar dados de um aplicativo de teste on-line. Além disso, você configurou o aplicativo para recuperar e exibir os dados no teste.

Terminar a Quest

Este laboratório autoguiado faz parte da Quest Application Development - Python. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se nesta Quest ou em outra que tenha este laboratório para receber os créditos de conclusão na hora. Confira o catálogo do Google Cloud Ensina para acessar todas as Quests disponíveis.

A seguir / Saiba mais

Manual atualizado em 16 de outubro de 2023

Laboratório testado em 18 de outubro de 2023

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.