Archivia e recupera i dati

ID regione

L'REGION_ID è un codice abbreviato che Google assegna 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 servizio web in modo che si connetta e gestisca i dati tramite Firestore in modalità Datastore (Datastore). Utilizza le librerie client Datastore per connettere il servizio web a Datastore, un database non relazionale (NoSQL) creato per offrire scalabilità automatica, prestazioni elevate e facilità dello sviluppo di applicazioni.

In questo passaggio, aggiorna 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 pagina. L'obiettivo è far funzionare l'archiviazione dei dati per il 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 Creare un'app Python 3 e completa tutti i passaggi fino a questo.

  • Se hai già un Google Cloud progetto, 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 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
      
    3. Abilita l'API Datastore:

      gcloud services enable datastore.googleapis.com
      

Archiviare e recuperare le entità Datastore

Archivia e recupera i tempi delle richieste del sito come entità Datastore completando i seguenti passaggi:

  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 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 tipo personalizzato, visit. L'entità ha anche una proprietà, timestamp, che contiene l'ora di una richiesta di pagina.

    Il metodo fetch_times utilizza la chiave visit per eseguire una query sul database per 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.1.3; python_version >= '3.9'
    google-cloud-datastore==2.15.1
    

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

Testare 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 le nuove dipendenze ed eseguire il servizio web. Se non hai configurato un ambiente virtuale per i test locali, consulta Testare il 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 servizio web nella Google Cloud console:

Vai alla pagina delle entità Datastore

Eseguire il deployment del servizio web

Ora che Datastore funziona localmente, puoi eseguire di nuovo il deployment del servizio web in App Engine.

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

gcloud app deploy

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

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

Visualizzare 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 servizio web, puoi imparare ad aggiungere Firebase al servizio web.