Zum Inhalt

05 - AppEngine Demo Application

In dieser Demo erarbeiten wir eine Python-Anwendung, die AppEngine und seine Integration in andere Google-Services demonstriert. Unsere Beispielanwendung wird alle Seitenaufrufe aufzeichnen und in einer HTML-Seite anzeigen.

Material: Die Quelldateien für diese Übung finden Sie im Material-ZIP unter appengine/ (Material herunterladen).

Schritt 1: Einfache Anwendung ohne Zusatzdienste

Diese Anwendung kann sofort auf AppEngine im Standard environment installiert werden. Sie zeigt nur Dummy-Daten an und dient als Ausgangspunkt.

Dazu einfach im step01-Verzeichnis gcloud app deploy aufrufen. Wenn Sie aufgefordert werden, eine Region zu wählen, dann empfiehlt sich europe-west.

Erläuterungen zur Anwendung:

  • main.py enthält eine eine Dummy-Anwendung, die Daten für die HTML-Templates erzeugt
  • static ist ein Flask-Template, welches die in Python generierten Daten rendert
  • static enthält einige für die HTML-Seite notwendigen Assets
  • app.yaml konfiguriert die AppEngine-Anwendung – insbesondere die Runtime und die Pfade
  • requirements.txt definiert die für Python notwendigen Abhängigkeiten

Schritt 2: Persistente Daten mit Cloud Datastore

In diesem Verzeichnis wurde die Anwendung erweitert um eine Anbindung an Cloud Datastore, um die Seitenaufrufe persistent zu speichern. Die Änderungen im Einzelnen:


neu in 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

geändert in index.html

<h2>Last 10 visits</h2>
{% for time in times %}
<p>{{ time['timestamp'] }}</p>
{% endfor %}

geändert in requirements.txt

Flask==3.0.0
firebase-admin==6.5.0

Anschließend die Anwendung mit gcloud app deploy aktualisieren.

In dieser Version ist die Anwendung nun fähig, alle Seitenaufrufe in einer Cloud-Datenbank aufzuzeichnen und danach anzuzeigen.