Archiviazione e recupero dati

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono apparire simili ai codici di paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r è incluso negli 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 a e gestire i dati tramite Firestore in modalità Datastore (Datastore). Utilizza le librerie client di Datastore per connettere il tuo servizio web a Datastore, un database non relazionale (NoSQL) creato per 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 pagina in Datastore e poi visualizzi un elenco delle ultime dieci richieste di pagine. L'obiettivo è far funzionare l'archiviazione dei dati per il tuo servizio web prima di aggiungere Firebase Authentication e personalizzare l'archiviazione dei dati per gli utenti autenticati.

Prima di iniziare

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

  • Inizia da Creazione di un'app Python 3 e completa tutti i passaggi precedenti.

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

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

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

      In alternativa, puoi scaricare l'esempio come file ZIP ed 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
      

Archiviazione e recupero delle entità Datastore

Archivia e recupera i tempi delle richieste del sito come entità Datastore, completando quanto segue:

  1. Aggiungi il seguente codice al tuo 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. Le entità Datastore sono oggetti di dati composti da chiavi e proprietà. In questo caso, la chiave dell'entità è il suo kind personalizzato, visit. L'entità ha anche una proprietà, timestamp, contenente l'ora di una richiesta di pagina.

    Il metodo fetch_times utilizza la chiave visit per eseguire query sul database sulle dieci entità visit più recenti, quindi archivia queste entità 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 il campo timestamp di ogni 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 ulteriori informazioni su entità, proprietà e chiavi Datastore, consulta Entità, proprietà e chiavi. Per ulteriori informazioni sull'utilizzo delle librerie client di Datastore, consulta Librerie client di Datastore.

Test del servizio web

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

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

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

    http://localhost:8080
    

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

Vai alla pagina delle entità Datastore

Deployment del servizio web

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

Esegui questo comando dalla directory radice del progetto, dove si trova il 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, vedi Gestione di servizi e versioni.

Visualizzazione del servizio

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

gcloud app browse

Passaggi successivi

Ora che Datastore è in funzione con il tuo servizio web, puoi imparare ad aggiungere Firebase al tuo servizio web.