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 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 tuo servizio web in modo che si connetta e gestisca i dati 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 pagina nel Datastore e poi mostri 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 di questa guida, salta questa sezione. In caso contrario, completa una delle seguenti operazioni:

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

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

    1. Scarica il repository dell'applicazione 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 codice seguente 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. Le entità del datastore sono oggetti di dati costituiti da chiavi e proprietà. In questo caso, la chiave dell'entità è il suo tipo 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 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 il 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 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 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 Eseguire il test del 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 delle entità di Datastore

Deployment del servizio web

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

Esegui il comando seguente dalla directory principale del progetto, dove si trova il file app.yaml:

gcloud app deploy

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

Per saperne di più sulla gestione delle versioni, consulta Gestire servizi e versioni.

Visualizza il 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, puoi imparare come aggiungere Firebase.