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
Cleanup sitzt! Als Nächstes: Daten anzeigen.