arrow_back

Sviluppo di applicazioni: archiviazione dei dati delle applicazioni in Cloud Datastore - Python

Partecipa Accedi
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Sviluppo di applicazioni: archiviazione dei dati delle applicazioni in Cloud Datastore - Python

Lab 50 minuti universal_currency_alt 5 crediti show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP184

Laboratori autogestiti Google Cloud

Panoramica

Google Cloud Datastore è un database di documenti NoSQL creato per offrire scalabilità automatica, prestazioni elevate e facilità dello sviluppo di applicazioni. In questo lab utilizzerai Datastore per archiviare i dati di un'applicazione per quiz online. Configurerai inoltre l'applicazione per recuperare i dati da Datastore e poi visualizzarli nel quiz.

Lo scheletro dell'applicazione Quiz è già stato scritto. Puoi clonare il repository che contiene lo scheletro mediante Google Cloud Shell, esaminare il codice con l'editor di Cloud Shell e visualizzarlo utilizzando la funzionalità di anteprima web di Cloud Shell. Quindi puoi modificare il codice per l'archiviazione dei dati in modo da utilizzare Cloud Datastore.

Obiettivi

In questo lab imparerai a eseguire le attività seguenti:

  • Sfruttare Cloud Shell come ambiente di sviluppo
  • Visualizzare l'applicazione in anteprima
  • Aggiornare il codice dell'applicazione in modo da integrare Cloud Datastore

Configurazione e requisiti

Prima di fare clic sul pulsante Avvia lab

Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.

Con questo lab pratico avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.

Per completare il lab, avrai bisogno di:

  • Accesso a un browser internet standard (Chrome è il browser consigliato).
Nota: utilizza una finestra del browser in incognito o privata per eseguire questo lab. Ciò evita eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
  • È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: se hai già un account o un progetto Google Cloud personale, non utilizzarlo per questo lab per evitare addebiti aggiuntivi al tuo account.

Come avviare il lab e accedere alla console Google Cloud

  1. Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si apre una finestra popup per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:

    • Pulsante Apri console Google
    • Tempo rimanente
    • Credenziali temporanee da utilizzare per il lab
    • Altre informazioni per seguire questo lab, se necessario
  2. Fai clic su Apri console Google. Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.

    Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.

    Note: se visualizzi la finestra di dialogo Scegli un account, fai clic su Utilizza un altro account.
  3. Se necessario, copia il Nome utente dal riquadro Dettagli lab e incollalo nella finestra di dialogo di accesso. Fai clic su Avanti.

  4. Copia la Password dal riquadro Dettagli lab e incollala nella finestra di dialogo di benvenuto. Fai clic su Avanti.

    Importante: devi utilizzare le credenziali presenti nel riquadro di sinistra. Non utilizzare le tue credenziali Google Cloud Skills Boost. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi.
  5. Fai clic nelle pagine successive:

    • Accetta i termini e le condizioni.
    • Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
    • Non registrarti per le prove gratuite.

Dopo qualche istante, la console Google Cloud si apre in questa scheda.

Nota: puoi visualizzare il menu con un elenco di prodotti e servizi Google Cloud facendo clic sul menu di navigazione in alto a sinistra. Icona menu di navigazione

Attiva Cloud Shell

Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.

  1. Fai clic su Attiva Cloud Shell Icona Attiva Cloud Shell nella parte superiore della console Google Cloud.

Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. L'output contiene una riga che dichiara il PROJECT_ID per questa sessione:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.

  1. (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list
  1. Fai clic su Autorizza.

  2. L'output dovrebbe avere ora il seguente aspetto:

Output:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facoltativo) Puoi elencare l'ID progetto con questo comando:
gcloud config list project

Output:

[core] project = <project_ID>

Output di esempio:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: per la documentazione completa di gcloud, in Google Cloud, fai riferimento alla Panoramica dell'interfaccia a riga di comando gcloud.

Avvia l'editor di codice Cloud Shell

  • Da Cloud Shell, fai clic sull'icona Apri editor per lanciare l'editor di codice. Potrebbe essere necessario fare clic su Apri in una nuova finestra.

Pulsante Apri editor.

Nota: l'editor di codice viene avviato in una scheda separata del browser.

Attività 1: crea un ambiente virtuale

  1. Fai clic sull'icona Apri terminale.

Gli ambienti virtuali Python vengono utilizzati per isolare l'installazione dei pacchetti dal sistema.

virtualenv -p python3 vrenv
  1. Attiva l'ambiente virtuale:
source vrenv/bin/activate

Attività 2: prepara l'applicazione Quiz

Il repository che contiene l'applicazione Quiz si trova su GitHub.com. In questa sezione utilizzerai Cloud Shell per inserire comandi che clonano il repository ed eseguono l'applicazione.

Clona il codice sorgente in Cloud Shell

  • Clona il repository per la classe:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Configura ed esegui l'applicazione Quiz

  1. Cambia la directory di lavoro:

    cd ~/training-data-analyst/courses/developingapps/python/datastore/start
  2. Esporta una variabile di ambiente, GCLOUD_PROJECT, che fa riferimento all'ID progetto:

    export GCLOUD_PROJECT=$DEVSHELL_PROJECT_ID Nota: ID progetto in Cloud Shell

    Mentre lavori in Cloud Shell, puoi accedere all'ID progetto nella variabile di ambiente "$DEVSHELL_PROJECT_ID".
  3. Installa le dipendenze dell'applicazione e ignora gli avvisi di incompatibilità:

    pip install -r requirements.txt
  4. Esegui l'applicazione:

    python run_server.py

    La visualizzazione di un messaggio simile al seguente indica che l'applicazione è in esecuzione:

    * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 179-313-240

Esamina l'applicazione Quiz

  1. In Cloud Shell, fai clic su Anteprima web > Anteprima sulla porta 8080 per visualizzare in anteprima l'applicazione Quiz.

    Opzione &quot;Anteprima sulla porta 8080&quot; evidenziata nel menu dell&#39;anteprima web.

    Dovresti visualizzare l'interfaccia utente per l'applicazione web. Le tre parti principali dell'applicazione sono:

    • Create Question (Crea domanda)
    • Take Test (Completa il test)
    • Leaderboard

    Pagina Welcome to the Quite Interesting Quiz (Quiz molto interessante) suddivisa in tre parti: Create Question (Crea domanda), Take Test (Completa il test) e Leaderboard.

  2. Nella barra di navigazione, fai clic su Create Question (Crea domanda).

    Dovresti visualizzare un modulo semplice che contiene le caselle di testo per la domanda e le risposte con pulsanti di opzione per selezionare la risposta corretta.

    Nota: gli autori dei quiz possono aggiungere le domande in questa parte dell'applicazione, che è stata scritta come applicazione web lato server utilizzando Flask, il popolare framework per applicazioni web Python.
  3. Nella barra di navigazione, fai clic su Take Test (Completa il test) e quindi su Piattaforma Google Cloud per accedere alle domande su Google Cloud.

    Dovresti visualizzare una domanda di esempio.

    Modello di domanda di esempio, insieme alle risposte di esempio e al pulsante Invia risposta.

    I partecipanti al quiz rispondono alle domande in questa parte dell'applicazione.

    Nota: questa parte dell'applicazione è stata scritta come applicazione web lato client.
  4. Per tornare all'applicazione lato server, fai clic sul link Quite Interesting Quiz (Quiz molto interessante) nella barra di navigazione.

Attività 3: esamina il codice dell'applicazione Quiz

In questo lab visualizzerai e modificherai i file. Puoi utilizzare gli editor della shell installati su Cloud Shell, ad esempio nano o vim, oppure l'editor di codice di Cloud Shell.

In questo lab utilizzerai l'editor di Cloud Shell per esaminare il codice dell'applicazione Quiz.

Esamina l'applicazione web Flask

  1. Passa alla cartella /training-data-analyst/courses/developingapps/python/datastore/start utilizzando il riquadro del browser di file sul lato sinistro dell'editor.
Nota: i percorsi saranno relativi a questa cartella. Questa applicazione è un'applicazione Python standard scritta utilizzando il popolare framework per applicazioni Flask.
  1. Seleziona il file ...run_server.py.

    Questo file contiene il punto di ingresso dell'applicazione e lo esegue sulla porta 8080.

  2. Seleziona il file ...quiz/_init_.py.

    Questo file importa le route per l'applicazione web e l'API REST.

  3. Seleziona i file ...quiz/webapp/questions.py e ...quiz/webapp/routes.py.

    Questi file contengono le route che mappano gli URI ai gestori che visualizzano il modulo e raccolgono i dati del modulo pubblicati dagli autori dei quiz nell'applicazione web.

  4. Seleziona la cartella ...quiz/webapp/templates.

    Questa cartella contiene i modelli per l'interfaccia utente dell'applicazione web che utilizza Jinja2.

  5. Visualizza il file ...quiz/webapp/templates/add.html.

    Questo file contiene il modello Jinja2 per il modulo di creazione della domanda.

    Osserva che ci sono un elenco di selezione in cui scegliere un quiz, caselle di testo in cui un autore può inserire la domanda e le risposte e pulsanti di opzione per selezionare la risposta corretta.

  6. Seleziona il file ...quiz/api/api.py.

    Questo file contiene il gestore che invia i dati JSON agli studenti che completano il test.

  7. Seleziona il file ...quiz/gcp/datastore.py.

    Questo è il file in cui scrivi il codice Datastore per salvare e caricare le domande del quiz in e da Cloud Datastore.

Questo modulo verrà importato nell'applicazione web e nell'API.

Attività 4: aggiungi le entità a Cloud Datastore

In questa sezione scriverai il codice necessario per salvare i dati del modulo in Cloud Datastore.

Nota: aggiorna il codice nelle sezioni contrassegnate come segue:

# TODO

# END TODO

Per ottimizzare l'apprendimento, prova a scrivere il codice senza fare riferimento al blocco di codice completato riportato al termine della sezione. Inoltre, esamina il codice, i commenti in linea e la documentazione dell'API Datastore Client per Cloud Datastore correlata.

Crea un'applicazione App Engine per eseguire il provisioning di Cloud Datastore

  1. Torna a Cloud Shell e interrompi l'applicazione premendo Ctrl+C.

  2. Per creare un'applicazione App Engine nel tuo progetto, usa:

    gcloud app create --region "{{{project_0.startup_script.app_region | REGION }}}"

Completata la creazione dell'applicazione App Engine, verrà visualizzato questo messaggio:

Creating App Engine application in project [qwiklabs-gcp-f67238775c00cfaa] and region {{{project_0.startup_script.app_region | REGION}}}....done. Success! The app is now created. Please use `gcloud app deploy` to deploy your first app. Nota: non stai ancora utilizzando App Engine per l'applicazione web. Tuttavia, Cloud Datastore richiede la creazione di un'applicazione App Engine nel progetto.

Fai clic su Controlla i miei progressi qui sotto per verificare lo stato di avanzamento del lab.

Crea un'applicazione App Engine

Importa e utilizza il modulo Datastore di Python

  1. Apri il file ...quiz/gcp/datastore.py nell'editor di Cloud Shell e aggiungi il codice Updated datastore.py elencato sotto per eseguire queste operazioni:

  2. Importare il modulo os.

  3. Utilizzare il modulo os per recuperare il valore della variabile di ambiente GCLOUD_PROJECT.

  4. Importare il modulo datastore dal pacchetto google.cloud.

  5. Dichiarare un oggetto client datastore.Client denominato datastore_client.

Datastore.py aggiornato

# TODO: Import the os module import os # END TODO # TODO: Get the GCLOUD_PROJECT environment variable project_id = os.getenv('GCLOUD_PROJECT') # END TODO from flask import current_app # TODO: Import the datastore module from the google.cloud package from google.cloud import datastore # END TODO # TODO: Create a Cloud Datastore client object # The datastore client object requires the Project ID. # Pass through the Project ID you looked up from the # environment variable earlier datastore_client = datastore.Client(project_id) # END TODO

Scrivi il codice per creare un'entità Cloud Datastore

  1. Sempre in ...quiz/gcp/datastore.py, passa alla funzione save_question() e rimuovi l'istruzione segnaposto pass esistente. Aggiungi il seguente codice datastore.py - funzione save_question() elencato sotto per eseguire queste operazioni:
  • Utilizzare l'oggetto client Datastore per creare una chiave per un'entità Datastore il cui tipo è 'Question'.
  • Utilizzare Datastore per creare un'entità Datastore Question utilizzando la chiave.
  • Eseguire un'iterazione sulle voci del dizionario di valori fornito dal modulo di applicazione web.
  • Nel corpo del loop, assegnare ogni chiave e valore all'oggetto entità di Datastore.
  • Utilizzare il client Datastore per salvare i dati.

datastore.py - funzione save_question()

""" Create and persist and entity for each question The Datastore key is the equivalent of a primary key in a relational database. There are two main ways of writing a key: 1. Specify the kind, and let Datastore generate a unique numeric id 2. Specify the kind and a unique string id """ def save_question(question): # TODO: Create a key for a Datastore entity # whose kind is Question key = datastore_client.key('Question') # END TODO # TODO: Create a Datastore entity object using the key q_entity = datastore.Entity(key=key) # END TODO # TODO: Iterate over the form values supplied to the function for q_prop, q_val in question.items(): # END TODO # TODO: Assign each key and value to the Datastore entity q_entity[q_prop] = q_val # END TODO # TODO: Save the entity datastore_client.put(q_entity) # END TODO
  1. Salva datastore.py.

Esegui l'applicazione e crea un'entità Cloud Datastore

  1. Salva il file ...quiz/gcp/datastore.py e quindi torna al prompt dei comandi di Cloud Shell.
  2. Per avviare l'applicazione, esegui questo comando:
python run_server.py
  1. In Cloud Shell, fai clic su Anteprima web > Anteprima sulla porta 8080 per visualizzare in anteprima l'applicazione Quiz.
  2. Fai clic su Create Question (Crea domanda).
  3. Completa il modulo con i valori seguenti e fai clic su Salva.

Campo modulo

Valore

Author (Autore)

Il tuo nome

Quiz

Google Cloud Platform

Title (Titolo)

Quale azienda possiede Google Cloud?

Answer 1 (Risposta 1)

Amazon

Answer 2 (Risposta 2)

Google (seleziona il pulsante di opzione Answer 2 (Risposta 2)!)

Answer 3 (Risposta 3)

IBM

Answer 4 (Risposta 4)

Microsoft

Dovresti ritornare alla home page dell'applicazione.

  1. Torna alla console, fai clic su Menu di navigazione > Datastore.
  2. Seleziona il database default e fai clic su Entities.

Dovresti visualizzare la tua nuova domanda.

Fai clic su Controlla i miei progressi qui sotto per verificare lo stato di avanzamento del lab.

Crea un'entità Cloud Datastore

Recupera le entità Cloud Datastore

In questa sezione scriverai il codice necessario per recuperare i dati delle entità dati da Cloud Datastore e visualizzare nell'applicazione la domanda che hai creato.

Scrivi il codice per recuperare le entità di Cloud Datastore

  1. Nell'editor di codice, nel file ...quiz/gcp/datastore.py, rimuovi il codice della funzione list_entities(quiz, redact) e sostituiscilo con una query che:
  • Recupera le entità Question per un quiz specifico da Cloud Datastore.
  • Utilizza il client Datastore per recuperare la query e utilizza i dati restituiti per creare un elenco.
  • Enumera gli elementi dell'elenco e promuove l'identificatore chiave di ciascuna entità a proprietà di livello superiore.
  • Restituisce i risultati.
  1. Sostituisci questo codice:
""" Returns a list of question entities for a given quiz - filter by quiz name, defaulting to gcp - no paging - add in the entity key as the id property - if redact is true, remove the correctAnswer property from each entity """ def list_entities(quiz='gcp', redact=True): return [{'quiz':'gcp', 'title':'Sample question', 'answer1': 'A', 'answer2': 'B', 'answer3': 'C', 'answer4': 'D', 'correctAnswer': 1, 'author': 'Nigel'}] """

Con questo codice:

""" Returns a list of question entities for a given quiz - filter by quiz name, defaulting to gcp - no paging - add in the entity key as the id property - if redact is true, remove the correctAnswer property from each entity """ def list_entities(quiz='gcp', redact=True): query = datastore_client.query(kind='Question') query.add_filter('quiz', '=', quiz) results =list(query.fetch()) for result in results: result['id'] = result.key.id if redact: for result in results: del result['correctAnswer'] return results """
  1. Salva datastore.py.

Esegui l'applicazione e un test della query di Cloud Datastore

Ora devi verificare se la domanda viene recuperata da Datastore e caricata nell'applicazione Quiz.

  1. In Cloud Shell, premi Ctrl+C per interrompere l'applicazione, quindi riavviala:
python run_server.py
  1. Visualizza un'anteprima del quiz: se il browser su cui è in esecuzione il quiz è ancora aperto, ricaricalo. In caso contrario, fai clic su Anteprima web > Anteprima sulla porta 8080.

  2. Fai clic su Take Test (Completa il test) > GCP (Piattaforma Google Cloud).

Dovresti vedere le domande che hai creato.

Domanda del quiz, insieme a un elenco di possibili risposte e al pulsante Invia risposta.

Complimenti!

Qui si conclude il self-paced lab Sviluppo di applicazioni: archiviazione dei dati delle applicazioni in Cloud Datastore - Python. Hai utilizzato Datastore per archiviare i dati dell'applicazione online Quiz. Hai anche configurato l'applicazione in modo da recuperare e visualizzare i dati nel quiz.

Completa la Quest

Questo self-paced lab fa parte della Quest Application Development - Python. Una Quest è una serie di lab collegati tra loro che formano un percorso di apprendimento. Il completamento della Quest ti permette di ottenere un badge come riconoscimento dell'obiettivo raggiunto. Puoi rendere pubblici i tuoi badge inserendone i link nel tuo CV online o sui social media. Iscriviti a questa Quest o ad altre contenenti il lab e ricevi subito un riconoscimento per averlo completato. Per vedere tutte le Quest disponibili, consulta il catalogo di Google Cloud Skills Boost.

Passaggi successivi/Scopri di più

Ultimo aggiornamento del manuale: 16 ottobre 2023

Ultimo test del lab: 18 ottobre 2023

Copyright 2024 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.