Archivia e recupera i dati

ID regione

Il REGION_ID è un codice abbreviato che Google assegna in base alla regione selezionata durante la creazione dell'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 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 per connetterti e gestire i dati tramite Firestore in modalità Datastore (Datastore). Utilizza le librerie client 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, aggiorna il servizio web in modo che memorizzi i dati delle richieste di pagine 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 Crea un'app Python 3 e completa tutti i passaggi precedenti.

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

    1. Scarica il repository dell'applicazione di esempio utilizzando Git:

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

      In alternativa, puoi scaricare il campione 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 gli orari delle richieste del sito come entità Datastore completando le seguenti operazioni:

  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à 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, che contiene l'ora di una richiesta di pagina.

    Il metodo fetch_times utilizza la chiave visit per eseguire query nel 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.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 Datastore, consulta la pagina Librerie client Datastore.

Testare il servizio web

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

  1. Esegui questi 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 la sezione 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 consoleGoogle 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 radice del tuo progetto, dove si trova il file app.yaml:

gcloud app deploy

Tutto il traffico viene instradato automaticamente alla nuova versione che hai implementato.

Per saperne di più sulla gestione delle versioni, consulta Gestione di 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 questo comando:

gcloud app browse

Passaggi successivi

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