Aus Ihrem Python wird eine echte Web-Anwendung: Sie schreiben die App lokal, bringen sie per Git auf den Server, starten sie dort und rufen sie im Browser unter /app/ auf.
Voraussetzungen: u16 (Python-Grundlagen) abgeschlossen, Workflow aus u12 sitzt.
Legen Sie in VS Code eine Datei app.py an. Ersetzen Sie ## durch Ihre Raumnummer (z. B. isa07 → Port 9007):
Die spätere virtuelle Umgebung soll nicht ins Repo. Legen Sie eine Datei .gitignore an (falls noch nicht vorhanden) mit der Zeile:
Beide Dateien: Stage → Commit (Flask-App angelegt) → Sync.
Auf git.md-phw.de: Ist app.py im Repo angekommen?
.gitignore).
Diesen Schritt machen Sie nur einmal. Zum Verlassen der venv später: deactivate.
Die venv ist aktiv ((venv) steht vorne). Starten Sie die App:
Es erscheint u. a. Running on http://0.0.0.0:90##. Lassen Sie das Terminal offen — solange läuft die App.
isa##.edumake.de ist wie ein Haus. Ein Port ist eine bestimmte Tür an diesem Haus. Hinter einer Tür wohnt Ihre statische Seite, hinter einer anderen (Port 90##) Ihre Flask-App. Damit Besucher die richtige Tür nicht kennen müssen, leitet der Server /app/ automatisch zur Flask-Tür weiter.
Öffnen Sie ein zweites SSH-Fenster (das erste läuft ja) und prüfen Sie direkt auf dem Server:
Rufen Sie im Browser auf:
Sie sehen Ihre Flask-Antwort. Ihre statische Seite bleibt weiterhin unter https://isa##.edumake.de/ erreichbar.
Ändern Sie in app.py den Rückgabetext, z. B.:
Stage → Commit (Begruessungstext geaendert) → Sync.
Auto-Deploy bringt die neue app.py auf den Server. Im Terminal, in dem die App läuft:
Browser neu laden (Hard Reload Strg/Cmd + Shift + R) → neuer Text.
- Eingabe verarbeiten: Zweite Route
/fragemit einem Formular und einer simplen Antwortprüfung (z. B. „Was ist 3 + 5?“ → 8). Beispiel:from flask import Flask, request @app.route("/frage", methods=["GET", "POST"]) def frage(): if request.method == "POST": if request.form["antwort"] == "8": return "Richtig! Tür offen." return "Leider falsch." return '<form method="post">Was ist 3+5? ' \ '<input name="antwort"><button>OK</button></form>'- HTML-Templates (Jinja2): echte HTML-Seiten statt Text zurückgeben (
render_template, Ordnertemplates/).- Escape Room & Datenbank: die nächsten großen Bausteine — Material folgt in den kommenden Sitzungen.