Archivia e recupera i dati

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici di paesi e province di uso comune. Per le app create dopo il giorno Febbraio 2020, REGION_ID.r è incluso in URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.

Scopri di più sugli ID regione.

Aggiorna il servizio web per connetterti ai dati e gestirli tramite Firestore in modalità Datastore (Datastore). Utilizza le librerie client Datastore per collegare il tuo servizio web a Datastore, un database non relazionale (NoSQL) creato per offrire scalabilità automatica, prestazioni elevate e facilità di sviluppo delle applicazioni.

In questo passaggio, aggiorni il servizio web in modo che memorizzi i dati delle richieste di pagine in Datastore, quindi visualizza un elenco delle ultime dieci richieste di pagina. L'obiettivo è far funzionare lo spazio di archiviazione dei dati per il tuo servizio web prima di aggiungere Firebase Authentication e personalizzare lo spazio di archiviazione dei dati per gli utenti autenticati.

Prima di iniziare

Se hai completato tutti i passaggi precedenti della guida, salta questa sezione. In caso contrario, completa una delle seguenti operazioni:

  • Inizia da Creare un'app Python 3 e completa tutti i passaggi che precedono questo.

  • Se hai già un progetto Google Cloud, puoi continuare scaricando una copia del servizio web:

    1. Scarica il repository delle applicazioni di esempio utilizzando Git:

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

      In alternativa, puoi scaricare il sample come file ZIP e poi estrarlo.

    2. Vai alla directory che contiene una copia dei file del passaggio precedente:

      cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-1
      
    3. Abilita l'API Datastore:

      gcloud services enable datastore.googleapis.com
      

Archivia e recupera le entità Datastore

Archivia e recupera i tempi di richiesta del sito come entità Datastore completando quanto segue:

  1. Aggiungi il seguente codice al file 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
    
    

    Il metodo store_time riportato sopra utilizza le librerie client Datastore per creare una nuova entità in Datastore. Datastore le entità sono oggetti dati costituiti da chiavi e proprietà. In questo nel caso in cui la chiave dell'entità sia il suo kind personalizzato, visit. L'entità ha inoltre una proprietà, timestamp, contenente l'ora di una richiesta di pagina.

    Il metodo fetch_times utilizza la chiave visit per eseguire query sul database per trovare le dieci entità visit più recenti e poi le memorizza in un elenco in ordine decrescente.

  2. Aggiorna il metodo root per chiamare i nuovi metodi:

    @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. Aggiorna il file templates/index.html per stampare timestamp di ciascuna entità:

    <h2>Last 10 visits</h2>
    {% for time in times %}
      <p>{{ time['timestamp'] }}</p>
    {% endfor %}
  4. Assicurati che il file requirements.txt includa tutte le dipendenze necessarie:

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

Per saperne di più su entità, proprietà e chiavi di Datastore, consulta Entità, proprietà e chiavi. Per ulteriori informazioni sull'utilizzo delle librerie client di Datastore, consulta Librerie client di Datastore.

Testa il servizio web

Testa il tuo servizio web eseguendolo localmente in un ambiente virtuale:

  1. Esegui i seguenti comandi nella directory principale del progetto per installare nuove dipendenze ed eseguire il servizio web. Se non hai configurato un ambiente virtuale per i test locali, consulta per testare il tuo servizio web.

    pip install -r requirements.txt
    python main.py
    
  2. Inserisci il seguente indirizzo nel browser web per visualizzare il servizio web:

    http://localhost:8080
    

Puoi visualizzare le entità create dal tuo servizio web nella Console Google Cloud:

Vai alla pagina Entità Datastore

Deployment del servizio web

Ora che Datastore funziona in locale, puoi eseguire nuovamente il deployment del servizio web su App Engine.

Esegui questo comando dalla directory principale del progetto: posizione del file app.yaml:

gcloud app deploy

Tutto il traffico viene instradato automaticamente alla nuova versione di cui hai eseguito il deployment.

Per ulteriori informazioni sulla gestione delle versioni, consulta la sezione Gestione dei servizi e delle versioni.

Visualizza il tuo servizio

Per avviare rapidamente il browser e accedere al servizio web all'indirizzo https://PROJECT_ID.REGION_ID.r.appspot.com, esegui il seguente comando:

gcloud app browse

Passaggi successivi

Ora che Datastore funziona con il tuo servizio web, è tutto pronto per scoprire come aggiungere Firebase al tuo servizio web.