Armazene e obtenha dados

ID da região

O REGION_ID é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após fevereiro de 2020, REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criadas antes desta data, o ID da região é opcional no URL.

Saiba mais acerca dos IDs de regiões.

Atualize o seu serviço Web para estabelecer ligação e processar dados através do Firestore no modo Datastore (Datastore). Use as bibliotecas cliente do Datastore para ligar o seu serviço Web ao Datastore, uma base de dados não relacional (NoSQL) criada para escala automática, elevado desempenho e facilidade de programação de aplicações.

Neste passo, atualiza o seu serviço Web para que armazene dados de pedidos de páginas no Datastore e, em seguida, apresenta uma lista dos últimos dez pedidos de páginas. O objetivo aqui é fazer com que o armazenamento de dados funcione para o seu serviço Web antes de adicionar a Firebase Authentication e personalizar o armazenamento de dados para utilizadores autenticados.

Antes de começar

Se tiver concluído todos os passos anteriores neste guia, ignore esta secção. Caso contrário, conclua uma das seguintes opções:

  • Comece por Criar uma app Python 3 e conclua todos os passos anteriores a este.

  • Se já tiver um Google Cloud projeto, pode continuar transferindo uma cópia do serviço Web:

    1. Transfira o repositório da aplicação de exemplo através do Git:

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

      Em alternativa, pode transferir o exemplo como um ficheiro ZIP e, de seguida, extraí-lo.

    2. Navegue para o diretório que contém uma cópia dos ficheiros do passo anterior:

      cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-1
      
    3. Ative a API Datastore:

      gcloud services enable datastore.googleapis.com
      

Armazene e obtenha entidades do Datastore

Armazene e obtenha horas de pedidos do site como entidades do Datastore através dos seguintes passos:

  1. Adicione o seguinte código ao seu ficheiro 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. Neste caso, a chave da entidade é o respetivo tipo personalizado, visit. A entidade também tem uma propriedade, timestamp, que contém a hora de um pedido de página.

    O método fetch_times usa a chave visit para consultar a base de dados das dez entidades visit mais recentes e, em seguida, armazena essas entidades numa lista por ordem descendente.

  2. Atualize o método root para chamar os seus 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 o ficheiro 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. Certifique-se de que o ficheiro 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 a utilização de bibliotecas cliente do Datastore, consulte o artigo Bibliotecas cliente do Datastore.

Teste o seu serviço Web

Teste o seu serviço Web executando-o localmente num ambiente virtual:

  1. Execute os seguintes comandos no diretório principal do seu projeto para instalar novas dependências e executar o seu serviço Web. Se não configurou um ambiente virtual para testes locais, consulte o artigo sobre como testar o seu serviço Web.

    pip install -r requirements.txt
    python main.py
    
  2. Introduza o seguinte endereço no seu navegador de Internet para ver o serviço Web:

    http://localhost:8080
    

Pode ver as entidades criadas pelo seu serviço Web na Google Cloud consola:

Aceda à página Entidades do Datastore

Implemente o seu serviço Web

Agora que tem o Datastore a funcionar localmente, pode voltar a implementar o seu serviço Web no App Engine.

Execute o seguinte comando a partir do diretório raiz do seu projeto, onde se encontra o ficheiro app.yaml:

gcloud app deploy

Todo o tráfego é encaminhado automaticamente para a nova versão implementada.

Para mais informações sobre a gestão de versões, consulte o artigo Gerir serviços e versões.

Veja o seu serviço

Para iniciar rapidamente o navegador e aceder ao seu serviço Web em https://PROJECT_ID.REGION_ID.r.appspot.com, execute o seguinte comando:

gcloud app browse

Passos seguintes

Agora que tem o Datastore a funcionar com o seu serviço Web, está pronto para saber como adicionar o Firebase ao seu serviço Web.