Zum Hauptinhalt springen

Mini-Projekt: Flask-Lerntracker

Anforderungen

  • Flask-App
  • Startseite mit Liste
  • Formular zum Hinzufügen
  • mind. 1 Template
  • Daten in einer Liste (oder Datei)
  • README Startbefehl

Beispiellösung (Kern)

Lösung anzeigen
from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)
eintraege: list[dict] = [{"thema": "Listen", "minuten": 20}]

@app.get("/")
def home():
return render_template("tracker.html", eintraege=eintraege)

@app.post("/add")
def add():
thema = request.form.get("thema", "").strip() or "Ohne Titel"
try:
minuten = int(request.form.get("minuten", "0"))
except ValueError:
minuten = 0
eintraege.append({"thema": thema, "minuten": minuten})
return redirect(url_for("home"))

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

templates/tracker.html:

<h1>Lerntracker</h1>
<ul>
{% for e in eintraege %}
<li>{{ e.thema }} – {{ e.minuten }} Min</li>
{% endfor %}
</ul>
<form action="/add" method="post">
<input name="thema" placeholder="Thema" />
<input name="minuten" placeholder="Minuten" />
<button type="submit">Add</button>
</form>

Kapitel 48 geschafft!

Als Nächstes: Meilensteine Band 8.