Como armazenar e recuperar dados

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. Para apps criados após fevereiro de 2020, o REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criados antes dessa data, o ID da região é opcional no URL.

Saiba mais sobre IDs de região.

Atualize seu serviço da Web para se conectar e processar dados usando o Firestore no modo Datastore (Datastore). Use as bibliotecas de cliente do Datastore para conectar o serviço da Web ao Datastore, um banco de dados não relacional (NoSQL) criado para escalonamento automático, alto desempenho e facilidade de desenvolvimento de aplicativos.

Nesta etapa, você atualiza o serviço da Web para que ele armazene dados de solicitação de página no Armazenamento de dados e, em seguida, exiba uma lista das últimas dez solicitações de página. O objetivo é fazer com que o armazenamento de dados esteja funcionando no serviço da Web antes que Firebase Authentication seja adicionado e personalizar o armazenamento de dados para usuários autenticados.

Antes de começar

Se você concluiu todas as etapas anteriores deste guia, pule esta seção. Caso contrário, conclua um dos procedimentos abaixo:

  • Comece por Como criar um aplicativo Python 3 e conclua todas as etapas anteriores a esta.

  • Se você já tiver um projeto do Google Cloud, continue fazendo o download de uma cópia do serviço da Web:

    1. Faça o download do repositório do aplicativo de amostra usando Git:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.

    2. Navegue até o diretório que contém uma cópia dos arquivos da etapa anterior:

      cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-1
      

Como armazenar e recuperar entidades do Datastore

Armazene e recupere os tempos de solicitação do site como entidades do Cloud Datastore fazendo o seguinte:

  1. Adicione o seguinte código ao arquivo main.py:

    from google.cloud import datastore
    
    datastore_client = datastore.Client()
    
    def store_time(dt):
        entity = datastore.Entity(key=datastore_client.key("visit"))
        entity.update({"timestamp": dt})
    
        datastore_client.put(entity)
    
    
    def fetch_times(limit):
        query = datastore_client.query(kind="visit")
        query.order = ["-timestamp"]
    
        times = query.fetch(limit=limit)
    
        return times
    
    

    O método store_time acima usa as bibliotecas de cliente do Datastore para criar uma nova entidade no Datastore. As entidades do Datastore são objetos de dados que consistem em chaves e propriedades. Nesse caso, a chave da entidade é o kind personalizado, visit. A entidade também tem uma propriedade, timestamp, que contém o tempo de uma solicitação de página.

    O método fetch_times usa a chave visit para consultar o banco de dados das dez entidades visit mais recentes e, em seguida, armazena essas entidades em uma lista em ordem decrescente.

  2. Atualize o método root para chamar os novos métodos:

    @app.route("/")
    def root():
        # Store the current access time in Datastore.
        store_time(datetime.datetime.now(tz=datetime.timezone.utc))
    
        # Fetch the most recent 10 access times from Datastore.
        times = fetch_times(10)
    
        return render_template("index.html", times=times)
    
    
  3. Atualize seu arquivo templates/index.html para imprimir o timestamp de cada entidade:

    <h2>Last 10 visits</h2>
    {% for time in times %}
      <p>{{ time['timestamp'] }}</p>
    {% endfor %}
  4. Verifique se o arquivo requirements.txt inclui todas as dependências necessárias:

    Flask==3.0.0
    google-cloud-datastore==2.15.1
    

Para mais informações sobre entidades, propriedades e chaves do Datastore, consulte Entidades, propriedades e chaves. Para mais informações sobre como usar bibliotecas de cliente do Datastore, consulte Bibliotecas de cliente do Datastore.

Como testar o serviço da Web

Teste seu serviço da Web executando-o localmente em um ambiente virtual:

  1. Execute os comandos a seguir no diretório principal do seu projeto para instalar novas dependências e executar o serviço da Web. Se você não tiver configurado um ambiente virtual para testes locais, consulte Como testar seu serviço da Web.

    pip install -r requirements.txt
    python main.py
    
  2. Digite o seguinte endereço no navegador da Web para ver o serviço da Web:

    http://localhost:8080
    

É possível ver as entidades criadas pelo serviço da Web no console do Google Cloud:

Acessar a página Entidades do Datastore

Como implantar serviços da Web

Agora que o Datastore está funcionando localmente, é possível reimplantar o serviço da Web no App Engine.

Execute o comando a seguir no diretório raiz do projeto, em que o arquivo app.yaml está localizado:

gcloud app deploy

Todo o tráfego é roteado automaticamente para a nova versão implantada.

Para mais informações sobre como gerenciar versões, consulte Como gerenciar serviços e versões.

Como ver o serviço

Para iniciar rapidamente o navegador e acessar o serviço da Web em https://PROJECT_ID.REGION_ID.r.appspot.com, execute o comando a seguir:

gcloud app browse

Próximas etapas

Agora que o Datastore está trabalhando com o serviço da Web, você está pronto para aprender a adicionar o Firebase ao serviço da Web.