arrow_back

Développement d'applications : Stocker des données d'application dans Cloud Datastore – Python

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

Développement d'applications : Stocker des données d'application dans Cloud Datastore – Python

Lab 50 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP184

Google Cloud – Ateliers adaptés au rythme de chacun

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) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. 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
  2. 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.
  3. 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.

  4. 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.
  5. 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.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

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.

  1. Cliquez sur Activer Cloud Shell Icône 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 :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur 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.

Bouton &quot;Ouvrir l&#39;éditeur&quot;

Remarque : L'éditeur de code s'ouvre dans un nouvel onglet de votre navigateur.

Tâche 1 : Créer un environnement virtuel

  1. Cliquez sur l'icône Ouvrir le terminal.

Les environnements virtuels Python permettent d'isoler l'installation d'un package du système.

virtualenv -p python3 vrenv
  1. Activez l'environnement virtuel :
source vrenv/bin/activate

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 :
git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Configurer et exécuter l'application Quiz

  1. Changez de répertoire de travail :

    cd ~/training-data-analyst/courses/developingapps/python/datastore/start
  2. 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".
  3. Installez les dépendances de l'application et ignorez les avertissements signalant d'éventuelles incompatibilités :

    pip install -r requirements.txt
  4. 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

  1. Dans Cloud Shell, cliquez sur Aperçu sur le Web > Prévisualiser sur le port 8080 pour prévisualiser l'application Quiz.

    Option &quot;Prévisualiser sur le port 8080&quot; encadrée dans le menu &quot;Aperçu sur le Web&quot;

    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)

    Page &quot;Welcome to the Quite Interesting Quiz&quot; affichant trois parties : &quot;Create Question&quot; (Créer une question), &quot;Take Test&quot; (Faire le test) et &quot;Leaderboard&quot; (Classement)

  2. 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é.
  3. 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.

    Exemple de modèle de question, avec les échantillons de réponses et le bouton &quot;Submit Answer&quot; (Envoyer la réponse)

    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.
  4. 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

  1. 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.
Remarque : Les chemins sont relatifs à ce dossier. Cette application Python standard a été développée dans Flask, un framework d'applications très utilisé.
  1. 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.

  2. Sélectionnez le fichier ...quiz/_init_.py.

    Ce fichier importe des routes pour l'application Web et l'API REST.

  3. 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.

  4. Sélectionnez le dossier ...quiz/webapp/templates.

    Ce dossier contient des modèles Jinja2 pour l'interface utilisateur de l'application Web.

  5. 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.

  6. 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.

  7. 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.

Remarque  : Modifiez le code dans les sections marquées comme suit :

# 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

  1. Revenez à Cloud Shell et arrêtez l'application en appuyant sur Ctrl+C.

  2. 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 :

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. Remarque : Vous n'utilisez pas encore App Engine pour votre application Web. Cependant, Cloud Datastore impose la création d'une application App Engine dans votre projet.

Cliquez sur Vérifier ma progression ci-dessous pour valider votre progression dans l'atelier.

Créer une application App Engine

Importer et utiliser le module Python Datastore

  1. 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 :

  2. Importer le module os

  3. Utiliser le module os pour obtenir la variable d'environnement GCLOUD_PROJECT

  4. Importer le module datastore à partir du package google.cloud

  5. Déclarer un objet client datastore.Client nommé datastore_client

Fichier datastore.py mis à jour

# 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

Écrire le code permettant de créer une entité Cloud Datastore

  1. Toujours dans le fichier ...quiz/gcp/datastore.py, accédez à la fonction save_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()

""" 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. Enregistrez le fichier datastore.py.

Exécuter l'application et créer une entité Cloud Datastore

  1. Enregistrez le fichier ...quiz/gcp/datastore.py, puis revenez à l'invite de commande Cloud Shell.
  2. Pour exécuter l'application, exécutez la commande suivante :
python run_server.py
  1. Dans Cloud Shell, cliquez sur Aperçu sur le Web > Prévisualiser sur le port 8080 pour prévisualiser l'application Quiz.
  2. Cliquez sur Create Question (Créer une question).
  3. Remplissez le formulaire avec les valeurs suivantes, puis cliquez sur Save (Enregistrer).

Champ du formulaire

Valeur

Author (Auteur)

Votre nom

Quiz

Google Cloud Platform

Title (Titre)

Which company owns Google Cloud?

Answer 1 (Réponse 1)

Amazon

Answer 2 (Réponse 2)

Google [sélectionnez la case d'option "Answer 2" (Réponse 2)]

Answer 3 (Réponse 3)

IBM

Answer 4 (Réponse 4)

Microsoft

Vous devez revenir à la page d'accueil de l'application.

  1. Revenez dans la console, et accédez au menu de navigation > Datastore.
  2. 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.

Créer une entité Cloud Datastore

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

  1. À partir de l'éditeur de code, dans le fichier ...quiz/gcp/datastore.py, supprimez le code de la fonction list_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
  1. Remplacez ce code :
""" 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'}] """

par celui-ci :

""" 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. 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.

  1. Dans Cloud Shell, appuyez sur Ctrl+C pour arrêter l'application, puis redémarrez-la :
python run_server.py
  1. 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.

  2. Cliquez sur Take Test > GCP (Faire le test > GCP).

Les questions que vous avez créées s'affichent.

Question de quiz avec une liste de réponses possibles et le bouton &quot;Submit Answer&quot; (Envoyer la réponse)

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

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.