Zum Hauptinhalt springen

Verbindung sicher schließen

teardown

from flask import g

@app.teardown_appcontext
def close_db(exception=None):
db = g.pop("db", None)
if db is not None:
db.close()

So wird die Verbindung am Ende des Kontexts geschlossen – auch bei Fehlern.

commit bei Änderungen

db = get_db()
db.execute("INSERT INTO todos (title) VALUES (?)", ("Lernen",))
db.commit()

Rate mal!

Was passiert ohne close über viele Requests?

Auflösung

Verbindungen können sich stapeln – Ressourcen-Probleme.

Probiere es selbst

Experiment 1

teardown hinzufügen.

Experiment 2

Insert + commit.

Experiment 3

App mehrmals neu starten, DB-Datei prüfen.

Übungen

Level 1

teardown erklären.

Level 2

Wann commit?

Level 3

Platzhalter ? begründen.

Level-2-Lösung

Nach INSERT/UPDATE/DELETE, damit Änderungen gespeichert werden.

Mini-Quiz

Mini-QuizWann commit?

Cleanup sitzt! Als Nächstes: Daten anzeigen.