13 Stimmen

SQLite in einem Python-Programm verwenden

Ich habe ein Python-Modul erstellt, das mehrere SQLite-Tabellen erstellt und auffüllt. Nun möchte ich es in einem Programm verwenden, aber ich weiß nicht, wie ich es richtig aufrufen soll. Alle Tutorials, die ich gefunden habe, sind im Wesentlichen "inline", d.h. sie gehen linear durch die Verwendung von SQLite und nicht, wie man es tatsächlich in der Produktion verwendet.

Ich möchte mit einer Methode prüfen, ob die Datenbank bereits erstellt wurde. Wenn ja, dann kann ich sie verwenden. Wenn nicht, wird eine Ausnahme ausgelöst und das Programm wird die Datenbank erstellen. (Oder verwenden Sie if/else-Anweisungen, je nachdem, was besser ist).

Ich habe ein Testskript erstellt, um zu sehen, ob meine Logik korrekt ist, aber es funktioniert nicht. Wenn ich die Try-Anweisung erstelle, wird einfach eine neue Datenbank erstellt, anstatt zu prüfen, ob bereits eine existiert. Wenn ich das Skript das nächste Mal ausführe, erhalte ich die Fehlermeldung, dass die Tabelle bereits existiert, auch wenn ich versucht habe, die Ausnahme abzufangen. (Ich habe try/except noch nie verwendet, dachte aber, dass dies ein guter Zeitpunkt ist, um es zu lernen).

Gibt es irgendwelche guten Tutorials für die Verwendung von SQLite operativ oder irgendwelche Vorschläge, wie dies zu codieren? Ich habe durch die Pysqlite-Tutorial und andere, die ich gefunden, aber sie nicht diese Adresse.

2 Stimmen

Könnten Sie vielleicht das Skript von Ihnen, das nicht zu funktionieren scheint, veröffentlichen?

3voto

Cheery Punkte 22879

Die Ausführung von SQL ist in allen Sprachen, die ich gelernt habe, furchtbar. SQLalchemy hat sich als am einfachsten von ihnen zu verwenden, weil tatsächliche Abfrage und Begehen mit ihm ist so sauber und abwesend von Problemen.

Hier sind einige grundlegende Schritte zur Verwendung von Sqlalchemy in Ihrer Anwendung, weitere Details finden Sie in der Dokumentation.

  • Tabellendefinitionen bereitstellen und ORM-Mappings erstellen
  • Datenbank laden
  • Tabellen aus den Definitionen erstellen lassen (wird nicht gemacht, wenn sie existieren)
  • Sitzungsmacher erstellen (optional)
  • Sitzung erstellen

Nachdem Sie eine Sitzung erstellt haben, können Sie die Daten übertragen und Abfragen in der Datenbank durchführen.

2voto

Sehen Sie sich diese Lösung bei SourceForge an, die Ihre Frage in einer tutoriellen Weise mit lehrreichem Quellcode behandelt:

y_serial.py Modul :: Python Objekte mit SQLite lagern

"Serialisierung + Persistenz :: in wenigen Zeilen Code Python-Objekte in SQLite komprimieren und annotieren; dann später chronologisch nach Schlüsselwörtern ohne SQL abrufen. Nützlichstes "Standard"-Modul für eine Datenbank zur Speicherung schemafreier Daten."

http://yserial.sourceforge.net

0voto

crystalattice Punkte 4903

Ja, ich habe das Problem ausgelöscht. Alles, was ich tun musste, war, nach der Datei zu suchen und den IOError abzufangen, wenn sie nicht vorhanden war.

Vielen Dank für die vielen anderen Antworten. Sie könnten sich in Zukunft als nützlich erweisen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X