Teil 16: Aufgaben im Browser anzeigen – mit HTML und for-Schleife

In Teil 15 hast du gelernt, wie du eine HTML-Datei anzeigst.
Jetzt lernen wir, wie du Aufgaben aus Python an die HTML-Seite übergibst – damit sie im Browser sichtbar werden.


🎯 Ziel dieses Teils

✅ Aufgaben in Python speichern
✅ Aufgaben an HTML übergeben
✅ Aufgaben im HTML mit einer Schleife anzeigen ({% for ... %})


Vorbereitung: Aufgabenliste in app.py

In deiner app.py – füge eine kleine Liste mit Beispielaufgaben ein:

aufgaben = [
    {"text": "Wäsche waschen", "erledigt": False},
    {"text": "Müll rausbringen", "erledigt": True},
    {"text": "Python lernen", "erledigt": False}
]

app.py (komplett)

So sollte deine Datei nun aussehen:

from flask import Flask, render_template

app = Flask(__name__)

# Beispiel-Aufgaben
aufgaben = [
    {"text": "Wäsche waschen", "erledigt": False},
    {"text": "Müll rausbringen", "erledigt": True},
    {"text": "Python lernen", "erledigt": False}
]

@app.route("/")
def startseite():
    return render_template("index.html", aufgaben=aufgaben)

if __name__ == "__main__":
    app.run(debug=True)

📌 Wichtig:

  • Du übergibst aufgaben=aufgaben an die HTML-Datei
  • Der Name links (aufgaben) ist der HTML-Name, rechts ist die Python-Variable

HTML-Datei anpassen: templates/index.html

Jetzt machen wir aus der statischen HTML-Seite eine dynamische Liste.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Meine To-Do-Liste</title>
</head>
<body>
    <h1>📝 Meine Aufgaben</h1>

    <ul>
        {% for aufgabe in aufgaben %}
            <li>
                {% if aufgabe.erledigt %}
                    ✅ <s>{{ aufgabe.text }}</s>
                {% else %}
                    ⬜ {{ aufgabe.text }}
                {% endif %}
            </li>
        {% endfor %}
    </ul>
</body>
</html>

Was passiert hier?

CodeBedeutung
{% for aufgabe in aufgaben %}Starte eine Schleife (wie in Python)
{{ aufgabe.text }}Zeige den Text der Aufgabe
{% if aufgabe.erledigt %}Bedingung: Ist die Aufgabe erledigt?
<s>...</s>Durchgestrichener Text (HTML)
, Nur Emojis – als visuelle Marker

Server starten

python app.py

Dann öffne im Browser:

👉 http://127.0.0.1:5000

Du solltest deine Aufgabenliste sehen – mit Häkchen ✅ für erledigt und Kästchen ⬜ für offen.


Was du gelernt hast

Du kannst jetzt:

KönnenWas du nutzt
Daten aus Python ins HTML bringenrender_template()
Listen anzeigen{% for ... %}
Bedingungen im HTML{% if ... %}
Text ausgeben{{ ... }}

Bonus-Idee

Du kannst oben anzeigen, wie viele Aufgaben noch offen sind:

<p>Du hast {{ aufgaben|length }} Aufgaben.</p>

Oder später:

<p>Noch {{ offene_aufgaben }} offen, {{ erledigte_aufgaben }} erledigt.</p>

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert