Python 3 Grundkurs

Daten aus Datenbank einlesen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der Trainer erläutert in diesem Video die Vorgehensweise, um bestehende Daten aus einer Datenbank innerhalb des Beispielprogramms einzulesen.

Transkript

In diesem Video werde ich Ihnen nun zeigen, wie wir unser EDV-Programm so abändern können, dass unsere Daten, unsere BMI-Werte, die berechneten, nun nicht mehr in einem flat file, also in bmi.txt reinlanden, sondern in einer Datenbanktabelle reingespeichert werden. Ich werd jetzt mal unser bmi Modul wieder laden, und - das hier wollen wir jetzt abändern, das heißt, ich werd mal das Ganze jetzt hier löschen, - und auch das - und das werden wir jetzt gleich hier ersetzen - und außerdem brauchen wir jetzt auch das jetzt nicht mehr - So - was müssen wir jetzt tun? Als allererstes werden wir das Modul sqlite3 importieren, sqlite3, denn hier sind ja alle Funktionen erhalten, die wir brauchen Was wollen wir als nächstes machen, jetzt müssen wir hier erstmal überprüfen, ob die Datenbank vorhanden ist, denn erst Mal soll die leer sein, oder soll überhaupt keine Datenbank da sein, und in diesem Fall werden wir dann nämlich eine neue Datenbank erzeugen, und eine neue Tabelle dazu. Also sag ich an der Stelle: if not - und dann brauche ich das Modul os.path wieder, also import os.path und dort ist die Methode die Funktion exists, über die ich dann überprüfen kann, ob die bmi.db vorhanden ist. die habe ich jetzt vorhin im Explorer gelöscht, das heißt, die wird am Anfang nicht drin sein, und deswegen kann ich jetzt hingehen und - sagen, okay - dann möchte ich jetzt - das Ganze mal erzeugt wissen, nämlich über sqlite3.connect das wird nämlich nicht nur eine Verbindung zur Datenbank erstelllen, sondern - - wenn sie nicht vorhanden ist, diese dann gleich anlegen. Gut. Das hätten wir geschafft, dann brauchen wir einen Cursor - den kriegen wir über connection.cursor und dann können wir loslegen, und über den Cursor - cursor.execute ein SQL Statement absetzen - wieder mit den 3 Hochkommata - und hier können wir jetzt reinschreiben, dass wir eine Tabelle erzeugt haben möchten So - jetzt ist die Frage, welche Tabelle - in einer professionellen Anwendung würde man wahrscheinlich das hier als ein Datenmodell betrachten, und hier sehen - zu der Klasse Benutzer einen Datenbanktabelle Benutzer erstellen und für die Klasse Bmirechner eben auch eine Tabelle Bmirechner und dann würde man hier einen Primärschlüssel erzeugen, und hier auch, und dann über Fremdschlüssel eine Beziehung erstellen, Das machen wir aber nicht, denn wir wollen es möglichst simpel halten, ich werde jetzt einfach nur - eine Tabelle erstellen, die sich Bmirechner nennt, die hat zwei Spalten, einmal Name, der ist vom Typ TEXT. und eine Spalte bmi vom Typ REAL das wäre das Pendant zu FLOAT und dann sind wir damit fertig. So, das hätten wir mal, und jetzt müßten wir aber schauen, was passiert denn, wenn die jetzt dann irgendwann erstellt ist, und wir hier im else Zweig landen. Das würde dann bedeuten, beim ersten Mal, da ist ja hier sowieso alles leer, deswegen wird der self.datenspeicher nicht aufgefüllt, beim zweiten Mal wäre es aber so, dass die Tabelle doch vorhanden ist, und dann müßten wir den self.datenspeicher eben auch auffüllen und das machen wir jetzt auch, und zwar kopiere ich jetzt erst mal diese drei - Zeilen, denn die sind eigentlich immer gleich - und da kann man jetzt hier ein anderes SQL Statement reinschreiben, nämlich das SQL Statement, das wir brauchen, um die Daten aus der Datenbanktabelle zu holen das ist ein select statement, also select und dann - schreiben wir die beiden Spaltennamen - name und bmi und dann ein FROM und den Bmirechner nach. So, jetzt müssen wir die Daten noch irgendwie einsammeln, das machen wir über - cursor.fetchall das Ganze werden wir dann zu einer Variablen mit dem Namen rows übergeben, also - cursor.fetchall und - jetzt können wir über rows durchiterieren, wir werden uns hierfür ein Objekt zurechtlegen - for row in rows So - und in dieser Iteration können wir dann immer - die einzelne Zeile in row uns anschauen, und - und zwar besteht die aus zwei Teilen - nämlich einmal aus dem Namen, und dem BMI-Wert und zwar ist der Name dann über dem index 0 enthalten - und der BMI-Wert, den kriegen wir über row=[1] Gut. Jetzt haben wir den Namen und den BMI-Wert und jetzt wollen wir den Datenspeicher irgendwie aktualisieren - Und wie machen wir das? Jetzt ist es so, dass der Datenspeicher ja - an der Stelle beim ersten Mal noch leer ist, das heißt, da würden wir eine leere Liste irgendwie holen, und dann den BMI-Wert und dann den Datenspeicher - dann aktualisieren wir hier immer den Namen - mit den bmi's dann immer irgendwie reinsetzen, Ich werde jetzt aber mal schauen, ob der Name denn vielleicht - nicht sogar dann schon drin ist, denn wenn ja, dann sind ja dann - schon bmis drin, also geh ich hin, if name in self.datenspeicher dann haben wir ja bmis vorhanden, die holen wir uns, und zwar besorgen wir die uns über self.datenspeicher [name] So - und, ja was ist, wenn die nicht enthalten sind, dann würden wir auch einen bmis haben, aber der ist dann halt eine leere Liste. Ja, wenn wir hiermit fertig sind, müssen wir dann die bmis um den neuen bmi anreichern, das machen wir über bmis.append(bmi) Und - jetzt müssen wir noch den Datenspeicher aktualisieren - self.datenspeicher - das macht man nämlich so - indem man hier ein update schreibt, und dann hierdrin in geschweiften Klammern den neuen Schlüsselwert da reinsetzt, name und bmi den aktualisierten, und dann klappt alles im Hintergrund automatisch - Also, das haben wir schon mal. Jetzt müssten wir noch dafür sorgen, dass hier noch immer jeweils - der neue BMI-Wert hinzufügt wird, hierfür kopiere ich wieder diese drei Kandidaten - Hier runter - So - und jetzt kann ich wieder über cursor.execute jetzt ein prepared Statement absetzen, nämlich ein INSERT INSERT into bmirechner und VALUES, und das sind eben der Name und der Bmi, aber wir waren ja im prepared statement - haben - deswegen nehme ich hier Fragezeichen - und dann gebe ich hierüber dann - die Namen und den BMI weiter, das sind jetzt hier diese beiden Parameter, die kann ich jetzt so übernehmen - Ja, prima, dann sind wir fertig, hier werde ich das Ganze noch committen, damit das auch klar ist, und bestätigt ist, connection.commit und - was brauchen wir noch - wir müssen die connection auch schließen - - connection.close So, hoffentlich ist jetzt alles korrekt, ich speichere das mal ab, und jetzt können wir das Hauptprogramm starten, das ist das hier - und das Programm mal laufen lassen - und schauen, ob das funktioniert - ALEX - 1.75, das wäre ja jetzt das erste Mal, das dieses Programm gelaufen ist, das heißt, jetzt müssten diese Daten in der Datenbanktabelle landen, ich kann jetzt das Programm nochmal starten - mit nem anderen Namen - die Pinki, die ist 60 cm und hier irgendwie - 6.2 - und dann sehen sehen Sie, dass die Daten hier ordentlich abgespeichert werden.

Python 3 Grundkurs

Lernen Sie die Entwicklungsumgebung sowie die grundlegenden Konzepte von Python kennen und schreiben Sie schon bald eigene Anwendungen.

4 Std. 33 min (49 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:26.03.2015

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!