Hallo
Ich möchte mit sqlite Klassenvariablen in einer Tabelle speichern.
Die Klassenvariablen heissen genau wie Tabellenspalten und die Reihenfolge ist auch identisch.
Unten folgt beispielhaft Tabelle und meine Code. Er gefällt mir nicht, weil ich im Insert-Statement alle Variablen erneut einzeln aufzählen muss.
Gibt es elegantere und kürzere Lösungen, die trotzdem gut lesbar sind?
(Zusatzfrage, gibt es ein gutes Best Practice-Buch für Python?)
Beispielstabelle:
Create table Mitarbeiter (nachname text, vorname text, gehalt text)
Beispielscode
class mitarbeiter:
def __init__(
self,
nachname,
vorname,
gehalt,
):
self.nachname = nachname
self.vorname = vorname
self.gehalt = gehalt
def speichern(self, cursor):
cursor.execute('insert into spiele values(?,?,?)',
(self.lk_nachname, self.nachname, self.gehalt))
Variablen einer Klasse und sql, Frage nach Best Practice
Man sollte sich nie auf die Reihenfolge der Spalten in einer SQL-Tabelle verlassen und immer die Namen explizit angeben:
Hier hast Du auch zwei Fehler eingebaut. Klassen schreibt man nach Konvention groß: ›Mitarbeiter‹.
Wenn Du mehr automatisch erledigen lassen willst, benutze ein ORM (object-relational mapping), wie z.B. mit SQLAlchemy.
Code: Alles auswählen
cursor.execute('insert into spiele (nachname, vorname, gehalt) values (?,?,?)',
(self.nachname, self.vorname, self.gehalt))
Wenn Du mehr automatisch erledigen lassen willst, benutze ein ORM (object-relational mapping), wie z.B. mit SQLAlchemy.