Import von Daten in Entry Felder

Fragen zu Tkinter.
Antworten
muffin
User
Beiträge: 19
Registriert: Dienstag 19. Februar 2013, 10:43

Hallöle,
ich habe ein Formular, in das ich Daten eintragen kann. Nach dem Schließen des Formulars sind die Daten natürlich weg - was für mich aber doof ist.
Jetzt habe ich mir überlegt, ich könnte die Daten ja in einer extra Datei speichern und sie dann beim nächsten Öffnen des Formulars per 'insert' wieder in die Entry-Felder eintragen.
Wie wäre da denn das beste Vorgehen? Ich habs mal aus Spaß über ein

Code: Alles auswählen

import
versucht. Das klappt auch. Aber ist das sinnvoll in einer Methode einen import zu machen? Oder wäre hier eine Datenbank angebracht (hab mich allerdings noch nicht damit beschäftigt).
Die Frage wäre dann auch, wie ich über mein Formular die jeweilige Datei finde - bin da auf

Code: Alles auswählen

askfilename
gestloßen - das funktioniert aber nicht ....
Sicher habt Ihr eine gute Idee für mich :D
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Hallo,

am einfachsten könntest du es über das CSV-Modul schaffen, die erstellt eine Textdatei, die vom Modul, wie der Name sagt, als CSV-File interpretiert wird. Dort könntest du die Daten ohne großen Aufwand speichern.

http://docs.python.org/3/library/csv.ht ... ht=csv#csv

Etwas andere wäre die sqlite3 Bibliothek, das ist eine dateibasierte Datenbank, allerdings musst du dafür SQL lernen und anwenden können und die Datenbank vorher einrichten.

http://docs.python.org/3/library/sqlite ... e3#sqlite3

Hoffe das hilft dir ;)
LG Maik
Sirius3
User
Beiträge: 18229
Registriert: Sonntag 21. Oktober 2012, 17:20

Idealerweise spendierst Du Deiner Formular-Klasse eine Serialisierungsmethode, die die ganzen Key-Value-Werte in ein Dictionary schreibt. Als Dateiformat bietet sich dafür json wunderbar an. Um zu wissen, wie das am besten Umzusetzen ist, müßte man natürlich mehr über Dein Programm wissen.
muffin
User
Beiträge: 19
Registriert: Dienstag 19. Februar 2013, 10:43

Vielen Dank daemonTutorials für die schnellen Antworten. Die Möglichkeiten mit dem CSV-Modul und die SQL-Variante werde ich mir gleich mal ansehen - das scheint nicht allzu kompliziert zu sein (hoffe ich).

Sirius3 - auf json bin ich während meiner Web-Durchforstung schon mal gestoßen - das schien mir aber sehr aufwendig (was den Lernaufwand für mich betrifft) zu sein - ich hatte den Eindruck, da müsste ich eine komplett neue "Sprache" lernen. Und da ich eh noch am Anfang stehe muss ich meine Verwirrung etwas in Grenzen halten.
Sirius3
User
Beiträge: 18229
Registriert: Sonntag 21. Oktober 2012, 17:20

@muffin: Wie gesagt, Formulardaten sind Key-Value-Paare und json viel einfacher als SQL und viel sicherer als CSV:

Code: Alles auswählen

>>> import json
>>> json.dumps({'Name':'Mayer','Vorname':'Thomas', 'Alter': 97})
'{"Vorname": "Thomas", "Name": "Mayer", "Alter": 97}'
muffin
User
Beiträge: 19
Registriert: Dienstag 19. Februar 2013, 10:43

o.k. - vielen Dank sirius3, das sieht ja ganz einleuchtend aus. ICh werd mir das auch mal ansehen.
muffin
User
Beiträge: 19
Registriert: Dienstag 19. Februar 2013, 10:43

Sirius3 hat geschrieben:json viel [...] sicherer als CSV:
[
... und warum ist json viel sicherer als eine csv-Datei?
Meine Daten werden doch auch in einer DAtei gespeichert, die ich immer in einem Texteditor ansehen und verändern kann (oder hab ich das falsch verstanden?) - oder meinst Du mit Sicherheit etwas anderes?
Sirius3
User
Beiträge: 18229
Registriert: Sonntag 21. Oktober 2012, 17:20

@muffin: mit „sicher“ meine ich, dass json ein klar definiertes Dateiformat ist und es inherent eindeutig ist, was ein Key und was ein Value ist. CSV kann sich praktisch jede Textdatei nennen, es ist nicht sicher, dass jedes Programm Sonderzeichen gleich interpretiert, was vor allem bei Textfeldern problematisch werden kann.
Antworten