Checkpoint
Create an App Engine application
/ 50
Create a Cloud Datastore entity
/ 50
Sviluppo di applicazioni: archiviazione dei dati delle applicazioni in Cloud Datastore - Python
GSP184
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).
- È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Come avviare il lab e accedere alla console Google Cloud
-
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
-
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. -
Se necessario, copia il Nome utente dal riquadro Dettagli lab e incollalo nella finestra di dialogo di accesso. Fai clic su Avanti.
-
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. -
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.
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.
- Fai clic su 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:
gcloud
è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.
- (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
-
Fai clic su Autorizza.
-
L'output dovrebbe avere ora il seguente aspetto:
Output:
- (Facoltativo) Puoi elencare l'ID progetto con questo comando:
Output:
Output di esempio:
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.
Attività 1: crea un ambiente virtuale
- Fai clic sull'icona Apri terminale.
Gli ambienti virtuali Python vengono utilizzati per isolare l'installazione dei pacchetti dal sistema.
- Attiva l'ambiente virtuale:
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:
Configura ed esegui l'applicazione Quiz
-
Cambia la directory di lavoro:
cd ~/training-data-analyst/courses/developingapps/python/datastore/start -
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". -
Installa le dipendenze dell'applicazione e ignora gli avvisi di incompatibilità:
pip install -r requirements.txt -
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
-
In Cloud Shell, fai clic su Anteprima web > Anteprima sulla porta 8080 per visualizzare in anteprima l'applicazione Quiz.
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
-
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. -
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.
I partecipanti al quiz rispondono alle domande in questa parte dell'applicazione.
Nota: questa parte dell'applicazione è stata scritta come applicazione web lato client. -
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
- Passa alla cartella
/training-data-analyst/courses/developingapps/python/datastore/start
utilizzando il riquadro del browser di file sul lato sinistro dell'editor.
-
Seleziona il file
...run_server.py
.Questo file contiene il punto di ingresso dell'applicazione e lo esegue sulla porta 8080.
-
Seleziona il file
...quiz/_init_.py
.Questo file importa le route per l'applicazione web e l'API REST.
-
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.
-
Seleziona la cartella
...quiz/webapp/templates
.Questa cartella contiene i modelli per l'interfaccia utente dell'applicazione web che utilizza Jinja2.
-
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.
-
Seleziona il file
...quiz/api/api.py
.Questo file contiene il gestore che invia i dati JSON agli studenti che completano il test.
-
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.
# 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
-
Torna a Cloud Shell e interrompi l'applicazione premendo Ctrl+C.
-
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:
Fai clic su Controlla i miei progressi qui sotto per verificare lo stato di avanzamento del lab.
Importa e utilizza il modulo Datastore di Python
-
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: -
Importare il modulo
os
. -
Utilizzare il modulo os per recuperare il valore della variabile di ambiente
GCLOUD_PROJECT
. -
Importare il modulo
datastore
dal pacchettogoogle.cloud
. -
Dichiarare un oggetto client
datastore.Client
denominatodatastore_client
.
Datastore.py aggiornato
Scrivi il codice per creare un'entità Cloud Datastore
- Sempre in
...quiz/gcp/datastore.py
, passa alla funzionesave_question()
e rimuovi l'istruzione segnapostopass
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()
- Salva
datastore.py
.
Esegui l'applicazione e crea un'entità Cloud Datastore
- Salva il file
...quiz/gcp/datastore.py
e quindi torna al prompt dei comandi di Cloud Shell. - Per avviare l'applicazione, esegui questo comando:
- In Cloud Shell, fai clic su Anteprima web > Anteprima sulla porta 8080 per visualizzare in anteprima l'applicazione Quiz.
- Fai clic su Create Question (Crea domanda).
- Completa il modulo con i valori seguenti e fai clic su Salva.
Campo modulo |
Valore |
Author (Autore) |
|
Quiz |
|
Title (Titolo) |
|
Answer 1 (Risposta 1) |
|
Answer 2 (Risposta 2) |
|
Answer 3 (Risposta 3) |
|
Answer 4 (Risposta 4) |
|
Dovresti ritornare alla home page dell'applicazione.
- Torna alla console, fai clic su Menu di navigazione > Datastore.
- 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.
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
- Nell'editor di codice, nel file
...quiz/gcp/datastore.py
, rimuovi il codice della funzionelist_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.
- Sostituisci questo codice:
Con questo codice:
- 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.
- In Cloud Shell, premi Ctrl+C per interrompere l'applicazione, quindi riavviala:
-
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.
-
Fai clic su Take Test (Completa il test) > GCP (Piattaforma Google Cloud).
Dovresti vedere le domande che hai creato.
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ù
-
Per ulteriori informazioni su Datastore, consulta la documentazione di Google Cloud Datastore.
-
Scopri di più su Python su Google Cloud.
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.