Daten speichern und abrufen

Regions-ID

REGION_ID ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.

Hier finden Sie weitere Informationen zu Regions-IDs.

Durch eine Aktualisierung Ihres Webdienstes können Sie zu Firestore im Datastore-Modus (Datastore) eine Verbindung herstellen und in Cloud Datastore Daten verarbeiten. Verwenden Sie für die Verbindung zu Datastore die Datastore-Clientbibliotheken. Die nicht relationale (NoSQL-)Datenbank bietet automatische Skalierung, hohe Leistung und eine einfache Anwendungsentwicklung.

In diesem Schritt aktualisieren Sie Ihren Webdienst so, dass er Seitenanfragedaten im Datastore speichert und dann eine Liste der letzten zehn Seitenanfragen anzeigt. Ziel ist, die Datenspeicherung für Ihren Webdienst zu aktivieren, bevor Sie Firebase Authentication hinzufügen und die Datenspeicherung für authentifizierte Nutzer personalisieren.

Vorbereitung

Wenn Sie alle vorherigen Schritte in diesem Leitfaden abgeschlossen haben, überspringen Sie diesen Abschnitt. Wenn nicht, führen Sie einen der folgenden Schritte aus:

  • Erstellen Sie zuerst eine Python 3-Anwendung und führen Sie alle Schritte bis zu diesem Schritt aus.

  • Wenn Sie bereits ein Google Cloud-Projekt haben, laden Sie eine Kopie des Webdienstes herunter:

    1. Laden Sie das Repository der Beispielanwendung mit Git herunter:

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

      Alternativ können Sie das Beispiel als ZIP-Datei herunterladen und dann extrahieren.

    2. Gehen Sie zu dem Verzeichnis, das eine Kopie der Dateien aus dem vorherigen Schritt enthält:

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

Datastore-Entitäten speichern und abrufen

Führen Sie folgende Schritte aus, um die Zeiten von Websiteanfragen als Datastore-Entitäten zu speichern und abzurufen:

  1. Fügen Sie Ihrer main.py-Datei den folgenden Code hinzu:

    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
    
    

    Die oben genannte Methode store_time verwendet die Datastore-Clientbibliotheken, um eine neue Entität in Datastore zu erstellen. Datenspeicherentitäten sind Datenobjekte, die aus Schlüsseln und Attributen bestehen. In diesem Fall ist der Schlüssel der Entität die benutzerdefinierte Artvisit. Die Entität hat auch eine Eigenschaft, timestamp, die die Zeit einer Seitenanfrage enthält.

    Mit der Methode fetch_times wird anhand des Schlüssels visit die Datenbank nach den zehn letzten Entitäten visit abgefragt. Diese Entitäten werden dann in einer Liste in absteigender Reihenfolge gespeichert.

  2. Aktualisieren Sie die root-Methode, um die neuen Methoden aufzurufen:

    @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. Aktualisieren Sie die templates/index.html-Datei, um den timestamp der einzelnen Entitäten zu drucken:

    <h2>Last 10 visits</h2>
    {% for time in times %}
      <p>{{ time['timestamp'] }}</p>
    {% endfor %}
  4. Achten Sie darauf, dass die Datei requirements.txt alle erforderlichen Abhängigkeiten enthält:

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

Weitere Informationen zu Entitäten, Attributen und Schlüsseln von Datastore finden Sie unter Entitäten, Eigenschaften und Schlüssel. Weitere Informationen zur Verwendung von Datastore-Clientbibliotheken finden Sie unter Datastore-Clientbibliotheken.

Webdienst testen

Testen Sie jetzt Ihren Webdienst. Führen Sie ihn dazu lokal aus und verwenden Sie eine virtuelle Umgebung:

  1. Führen Sie die folgenden Befehle im Hauptverzeichnis Ihres Projekts aus, um neue Abhängigkeiten zu installieren und Ihren Webdienst auszuführen. Wenn keine virtuelle Umgebung für lokale Tests eingerichtet ist, finden Sie weitere Informationen unter Webdienst testen.

    pip install -r requirements.txt
    python main.py
    
  2. Geben Sie die folgende Adresse in Ihren Webbrowser ein, um den Webdienst aufzurufen:

    http://localhost:8080
    

Sie können die Entitäten aufrufen, die von Ihrem Webdienst in der Google Cloud Console erstellt wurden:

Zur Seite "Datastore-Entitäten"

Webdienst bereitstellen

Nun, da Datastore lokal ausgeführt wird, können Sie Ihren Webdienst wieder für App Engine bereitstellen.

Führen Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts aus, in dem sich die Datei app.yaml befindet:

gcloud app deploy

Der gesamte Traffic wird automatisch an die neue Version geleitet, die Sie bereitgestellt haben.

Weitere Informationen zum Verwalten von Versionen finden Sie unter Dienste und Versionen verwalten.

Dienst aufrufen

Mit dem folgenden Befehl können Sie den Browser schnell starten und unter https://PROJECT_ID.REGION_ID.r.appspot.com auf Ihren Webdienst zugreifen:

gcloud app browse

Nächste Schritte

Datastore ist jetzt mit Ihrem Webdienst verbunden. Als Nächstes erfahren Sie, wie Sie Ihrem Webdienst Firebase hinzufügen.