Stocker et récupérer des données

ID de la région

Le REGION_ID est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.

En savoir plus sur les ID de région

Mettez à jour votre service Web pour vous connecter et gérer les données via Firestore en mode Datastore (Datastore). Utilisez les bibliothèques clientes Datastore pour connecter votre service Web à Datastore, une base de données non relationnelle (NoSQL) conçue pour le scaling automatique et les hautes performances, et qui simplifie le développement d'applications.

À cette étape, vous mettez à jour votre service Web afin qu'il stocke les données des requêtes de page dans Datastore, puis qu'il affiche une liste des dix dernières requêtes de page. L'objectif ici est de faire en sorte que le stockage de données fonctionne pour votre service Web avant d'ajouter l'authentification Firebase et de personnaliser le stockage de données pour les utilisateurs authentifiés.

Avant de commencer

Si vous avez suivi toutes les étapes précédentes de ce guide, ignorez cette section. Sinon, effectuez l'une des opérations suivantes :

  • Commencez par Créer une application Python 3 et suivez toutes les étapes menant à celle-ci.

  • Si vous disposez déjà d'un projet Google Cloud, passez à l'étape de téléchargement d'une copie du service Web :

    1. Téléchargez le dépôt de l'exemple d'application à l'aide de Git :

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

      Vous pouvez également télécharger l'exemple en tant que fichier zip et l'extraire.

    2. Accédez au répertoire contenant une copie des fichiers de l'étape précédente :

      cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-1
      

Stocker et récupérer des entités Datastore

Stockez et récupérez les requêtes de site en tant qu'entités Datastore en procédant comme suit :

  1. Ajoutez le code suivant au fichier 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
    
    

    La méthode store_time ci-dessus utilise les bibliothèques clientes Datastore pour créer une entité dans Datastore. Les entités Datastore sont des objets de données constitués de clés et de propriétés. Dans ce cas, la clé de l'entité correspond à son genre personnalisé, visit. L'entité dispose également d'une propriété, timestamp, contenant l'heure d'une requête de page.

    La méthode fetch_times utilise la clé visit pour interroger la base de données sur les dix entités visit les plus récentes, puis stocke ces entités dans une liste par ordre décroissant.

  2. Mettez à jour votre méthode root pour appeler vos nouvelles méthodes :

    @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. Mettez à jour le fichier templates/index.html pour imprimer l'élément timestamp de chaque entité :

    <h2>Last 10 visits</h2>
    {% for time in times %}
      <p>{{ time['timestamp'] }}</p>
    {% endfor %}
  4. Assurez-vous que votre fichier requirements.txt inclut toutes les dépendances nécessaires :

    Flask==3.0.0
    google-cloud-datastore==2.15.1
    

Pour en savoir plus sur les entités, les propriétés et les clés Datastore, consultez la page Entités, propriétés et clés. Pour en savoir plus sur l'utilisation des bibliothèques clientes Datastore, consultez la page Bibliothèques clientes Datastore.

Tester votre service Web

Testez votre service Web en l'exécutant localement dans un environnement virtuel :

  1. Exécutez les commandes suivantes dans le répertoire principal de votre projet pour installer de nouvelles dépendances et exécuter votre service Web. Si vous n'avez pas configuré d'environnement virtuel pour les tests en local, consultez la section Tester votre service Web.

    pip install -r requirements.txt
    python main.py
    
  2. Saisissez l'adresse suivante dans votre navigateur Web pour afficher votre service Web :

    http://localhost:8080
    

Vous pouvez afficher les entités créées par votre service Web dans la console Google Cloud :

Accéder à la page Entités Datastore

Déployer votre service Web

Maintenant que Datastore fonctionne localement, vous pouvez redéployer votre service Web sur App Engine.

Exécutez la commande suivante à partir du répertoire racine de votre projet, où se trouve le fichier app.yaml :

gcloud app deploy

Tout le trafic est automatiquement acheminé vers la nouvelle version que vous avez déployée.

Pour plus d'informations sur la gestion des versions, consultez la documentation sur la gestion des services et des versions.

Affichez votre service :

Pour lancer rapidement votre navigateur et accéder à votre service Web à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com, exécutez la commande suivante :

gcloud app browse

Étapes suivantes

Maintenant que Datastore fonctionne avec votre service Web, vous êtes prêt à apprendre comment ajouter Firebase à votre service Web.