Points de contrôle
Create an App Engine application
/ 50
Create a Cloud Datastore entity
/ 50
Développement d'applications : Stocker des données d'application dans Cloud Datastore – Python
GSP184
Présentation
Conçue pour le scaling automatique et les hautes performances, Google Cloud Datastore est une base de données de documents NoSQL qui simplifie le développement d'applications. Dans cet atelier, vous allez stocker des données d'une application Quiz en ligne à l'aide de Datastore. Vous allez également configurer l'application pour récupérer des données à partir de Datastore et les afficher dans le quiz.
Le squelette de l'application Quiz a déjà été codé. Vous allez cloner le dépôt contenant le squelette à l'aide de Google Cloud Shell, examiner le code dans l'éditeur Cloud Shell, puis l'afficher à l'aide de la fonction d'aperçu sur le Web de Cloud Shell. Vous modifierez ensuite le code de façon à stocker les données dans Cloud Datastore.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Exploiter Cloud Shell en tant qu'environnement de développement
- Prévisualiser l'application
- Mettre à jour le code de l'application pour intégrer Cloud Datastore
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :
- Le bouton Ouvrir la console Google
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte. -
Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.
-
Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés. -
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas aux essais offerts.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
- Cliquez sur Activer Cloud Shell en haut de la console Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :
gcloud
est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
-
Cliquez sur Autoriser.
-
Vous devez à présent obtenir le résultat suivant :
Résultat :
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
Résultat :
Exemple de résultat :
gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Lancer l'éditeur de code Cloud Shell
- Dans Cloud Shell, cliquez sur l'icône Ouvrir l'éditeur pour lancer l'éditeur de code. Vous devrez peut-être cliquer sur Ouvrir dans une nouvelle fenêtre.
Tâche 1 : Créer un environnement virtuel
- Cliquez sur l'icône Ouvrir le terminal.
Les environnements virtuels Python permettent d'isoler l'installation d'un package du système.
- Activez l'environnement virtuel :
Tâche 2 : Préparer l'application Quiz
Le dépôt contenant l'application Quiz se trouve sur GitHub.com
.
Dans cette section, vous allez utiliser Cloud Shell pour saisir des commandes permettant de cloner le dépôt et d'exécuter l'application.
Cloner le code source dans Cloud Shell
- Clonez le dépôt associé au cours :
Configurer et exécuter l'application Quiz
-
Changez de répertoire de travail :
cd ~/training-data-analyst/courses/developingapps/python/datastore/start -
Exportez une variable d'environnement
GCLOUD_PROJECT
qui référence l'ID du projet :export GCLOUD_PROJECT=$DEVSHELL_PROJECT_ID Remarque : ID du projet dans Cloud Shell Lorsque vous travaillez dans Cloud Shell, vous avez accès à l'ID de projet dans la variable d'environnement "$DEVSHELL_PROJECT_ID". -
Installez les dépendances de l'application et ignorez les avertissements signalant d'éventuelles incompatibilités :
pip install -r requirements.txt -
Exécutez l'application :
python run_server.py Un message semblable à celui-ci indique que l'application est en cours d'exécution :
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 179-313-240
Examiner l'application Quiz
-
Dans Cloud Shell, cliquez sur Aperçu sur le Web > Prévisualiser sur le port 8080 pour prévisualiser l'application Quiz.
L'interface utilisateur de l'application Web s'affiche. L'application se compose des trois parties principales suivantes :
- Create Question (Créer une question)
- Take Test (Faire le test)
- Leaderboard (Classement)
-
Dans la barre de navigation, cliquez sur Create Question (Créer une question).
Un formulaire simple contenant des zones de texte pour la question et les réponses doit s'afficher, avec des cases d'option pour sélectionner la bonne réponse.
Remarque : Les auteurs du quiz peuvent ajouter des questions dans cette partie de l'application. Cette partie est codée sous la forme d'une application Web côté serveur à l'aide de Flask, un framework d'applications Web Python très utilisé. -
Dans la barre de navigation, cliquez sur Take Test (Faire le test), puis sur GCP pour accéder aux questions sur Google Cloud.
Un exemple de question s'affiche.
Les personnes participant au quiz répondront aux questions dans cette partie de l'application.
Remarque : Cette partie de l'application est codée sous la forme d'une application Web côté client. -
Pour revenir à l'application côté serveur, cliquez sur le lien Quite Interesting Quiz (Quiz très intéressant) dans la barre de navigation.
Tâche 3 : Examiner le code de l'application Quiz
Au cours de cet atelier, vous allez consulter et modifier des fichiers. Vous pouvez utiliser les éditeurs de script shell installés sur Cloud Shell, tels que nano
ou vim
, ou encore l'éditeur de code intégré de Cloud Shell.
Cet atelier utilise l'éditeur de code Cloud Shell pour examiner le code de l'application Quiz.
Examiner l'application Web Flask
- Accédez au dossier
/training-data-analyst/courses/developingapps/python/datastore/start
dans le panneau de l'explorateur de fichiers situé à gauche de l'éditeur.
-
Sélectionnez le fichier
...run_server.py
.Ce fichier contient le point d'entrée de l'application et l'exécute sur le port 8080.
-
Sélectionnez le fichier
...quiz/_init_.py
.Ce fichier importe des routes pour l'application Web et l'API REST.
-
Sélectionnez les fichiers
...quiz/webapp/questions.py
et...quiz/webapp/routes.py
.Ces fichiers contiennent les routes mappant les URI aux gestionnaires qui affichent le formulaire et collectent les données publiées par les auteurs du quiz dans l'application Web.
-
Sélectionnez le dossier
...quiz/webapp/templates
.Ce dossier contient des modèles Jinja2 pour l'interface utilisateur de l'application Web.
-
Affichez le fichier
...quiz/webapp/templates/add.html
.Ce fichier contient le modèle Jinja2 du formulaire "Create Question" (Créer une question).
Vous y trouverez une liste de sélection permettant de choisir un quiz, les zones de texte dans lesquelles l'auteur peut saisir des questions et des réponses ainsi que les cases d'option permettant de sélectionner la bonne réponse.
-
Sélectionnez le fichier
...quiz/api/api.py
.Ce fichier contient le gestionnaire qui envoie des données JSON aux élèves participant à un test.
-
Sélectionnez le fichier
...quiz/gcp/datastore.py
.Il s'agit du fichier dans lequel vous rédigerez le code Datastore permettant d'enregistrer et de charger les questions du quiz vers et depuis Cloud Datastore.
Ce module sera ensuite importé dans l'application Web et l'API.
Tâche 4 : Ajouter des entités à Cloud Datastore
Dans cette section, vous allez écrire le code permettant d'enregistrer les données du formulaire dans Cloud Datastore.
# TODO
# END TODO
Pour parfaire votre apprentissage, essayez d'écrire le code sans consulter le bloc de code complété présenté à la fin de cette section. De plus, examinez le code, les commentaires intégrés et la documentation sur l'API cliente Datastore pour Cloud Datastore associée.
Créer une application App Engine pour provisionner Cloud Datastore
-
Revenez à Cloud Shell et arrêtez l'application en appuyant sur Ctrl+C.
-
Pour créer une application App Engine dans votre projet, saisissez la commande suivante :
gcloud app create --region "{{{project_0.startup_script.app_region | REGION }}}"
Le message suivant s'affiche une fois l'application App Engine créée :
Cliquez sur Vérifier ma progression ci-dessous pour valider votre progression dans l'atelier.
Importer et utiliser le module Python Datastore
-
Ouvrez le fichier
...quiz/gcp/datastore.py
dans l'éditeur Cloud Shell et ajoutez le code Updated datastore.py ci-dessous pour effectuer les opérations suivantes : -
Importer le module
os
-
Utiliser le module os pour obtenir la variable d'environnement
GCLOUD_PROJECT
-
Importer le module
datastore
à partir du packagegoogle.cloud
-
Déclarer un objet client
datastore.Client
nommédatastore_client
Fichier datastore.py mis à jour
Écrire le code permettant de créer une entité Cloud Datastore
- Toujours dans le fichier
...quiz/gcp/datastore.py
, accédez à la fonctionsave_question()
et supprimez l'instruction d'espace réservépass
. Ajoutez le code de fonction datastore.py – save_question() ci-dessous pour effectuer les opérations suivantes :
- Créer une clé de genre
Question
pour une entité Datastore, à l'aide de l'objet client Datastore - Créer une entité de question Datastore avec la clé
- Effectuer une itération sur les éléments du dictionnaire de valeurs fourni par le formulaire de l'application Web
- Dans le corps de la boucle, attribuer chaque clé et valeur à l'objet de l'entité Datastore
- Enregistrer les données avec le client Datastore
datastore.py – fonction save_question()
- Enregistrez le fichier
datastore.py
.
Exécuter l'application et créer une entité Cloud Datastore
- Enregistrez le fichier
...quiz/gcp/datastore.py
, puis revenez à l'invite de commande Cloud Shell. - Pour exécuter l'application, exécutez la commande suivante :
- Dans Cloud Shell, cliquez sur Aperçu sur le Web > Prévisualiser sur le port 8080 pour prévisualiser l'application Quiz.
- Cliquez sur Create Question (Créer une question).
- Remplissez le formulaire avec les valeurs suivantes, puis cliquez sur Save (Enregistrer).
Champ du formulaire |
Valeur |
Author (Auteur) |
|
Quiz |
|
Title (Titre) |
|
Answer 1 (Réponse 1) |
|
Answer 2 (Réponse 2) |
|
Answer 3 (Réponse 3) |
|
Answer 4 (Réponse 4) |
|
Vous devez revenir à la page d'accueil de l'application.
- Revenez dans la console, et accédez au menu de navigation > Datastore.
- Sélectionnez la base de données par défaut, puis cliquez sur Entités.
La nouvelle question apparaît.
Cliquez sur Vérifier ma progression ci-dessous pour valider votre progression dans l'atelier.
Récupérer des entités Cloud Datastore
Dans cette section, vous allez écrire le code permettant de récupérer des données d'entité à partir de Cloud Datastore pour visualiser votre question dans l'application.
Écrire le code permettant de récupérer des entités Cloud Datastore
- À partir de l'éditeur de code, dans le fichier
...quiz/gcp/datastore.py
, supprimez le code de la fonctionlist_entities(quiz, redact)
et remplacez-le par une requête permettant d'effectuer les opérations suivantes :
- Récupérer les entités "Question" pour un quiz particulier depuis Cloud Datastore
- Extraire la requête à l'aide du client Datastore et créer une liste avec les données renvoyées
- Énumérer la liste d'éléments et promouvoir l'identifiant de clé de chaque entité comme propriété de niveau supérieur
- Renvoyer les résultats
- Remplacez ce code :
par celui-ci :
- Enregistrez le fichier
datastore.py
.
Exécuter l'application et tester la requête Cloud Datastore
Maintenant, vérifiez si votre question est extraite de Datastore et chargée dans votre application Quiz.
- Dans Cloud Shell, appuyez sur Ctrl+C pour arrêter l'application, puis redémarrez-la :
-
Prévisualisez le quiz : si le navigateur qui exécute le quiz est toujours ouvert, actualisez-le. Sinon, cliquez sur Aperçu sur le Web > Prévisualiser sur le port 8080.
-
Cliquez sur Take Test > GCP (Faire le test > GCP).
Les questions que vous avez créées s'affichent.
Félicitations !
L'atelier d'auto-formation Développement d'applications : Stocker des données d'application dans Cloud Datastore – Python est à présent terminé. Vous avez utilisé Datastore pour stocker les données d'une application Quiz en ligne. Vous avez également configuré l'application pour récupérer les données et les afficher dans le quiz.
Terminer votre quête
Cet atelier d'auto-formation fait partie de la quête Application Development - Python. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez cette quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à cette quête ou à une autre quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.
Étapes suivantes et informations supplémentaires
-
Pour plus d'informations sur Datastore, consultez la documentation Google Cloud Datastore.
-
En savoir plus sur Python sur Google Cloud.
Dernière modification du manuel : 16 octobre 2023
Dernier test de l'atelier : 18 octobre 2023
Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.