4 Stimmen

Gründe für die Verwendung von Sqlalchemy in Qt

Dies ist wirklich eine "Verzeihen Sie meine Unwissenheit"-Frage, also entschuldigen Sie, wenn sie nicht den Anforderungen entspricht.

Ich möchte eine relativ einfache Datenbankanwendung entwickeln. Es wird Desktop-basiert und leichtgewichtig sein, also bin ich froh, dass SQLite ausreicht. Ich habe auch auf Qt und pyside entschieden.

Beim Durchsehen der vielen Tutorials stoße ich immer wieder auf Sqlalchemy und Exlixir (und Camelot). Ich bin im Grunde nur fragen, welche Vorteile es gibt, mit sqlalchemy (und elixir) über grundlegende QSql in Qt? Was würde ich verpassen, wenn ich nicht eine solche Sache verwenden.

Ich weiß, dass dies grundlegend ist, aber bevor ich in meinem Selbsterkenntnisprozess vorankomme, möchte ich dies einfach in meinem Kopf klarstellen.

7voto

Oleh Prypin Punkte 31246

Im Grunde haben Sie hier 3 Möglichkeiten.

QtSql

QtSql ist ein separates Modul in Qt für die Arbeit mit SQL-Datenbanken.

Vorteile:

  • Die Integration mit Qt könnte einfacher sein

Nachteile:

  • Schwer zu lernen
  • Wurde für C++ entwickelt, erfordert einigen redundanten Code
  • Erfordert das Hinzufügen eines weiteren Qt-Moduls zu Ihrem Projekt
  • Dokumentation sieht schlecht aus

sqlite3 Modul

Dies ist ein Modul der Python-Standardbibliothek für die Arbeit mit SQLite-Datenbanken.

Vorteile:

  • Sehr einfach zu bedienen
  • Der Code ist recht knapp gehalten
  • Keine externen Abhängigkeiten

Nachteile:

  • Sie müssen SQL-Abfragen schreiben

SQLAlchemy ORM

SQLAlchemy macht die Arbeit mit Datenbanken ähnlich wie die Arbeit mit gewöhnlichen Klassen.

Vorteile:

  • Object Relational Mapper: stellt eine objektorientierte Schnittstelle zur Verfügung und erstellt SQL-Abfragen für Sie
  • Sobald Sie die Tabelleninformationen eingerichtet haben, ist die Arbeit mit Datenbanken eine reine Freude

Nachteile:

  • Steile Lernkurve

Hier ist meine Schlussfolgerung:
Wenn Sie mit dem Schreiben von SQL-Abfragen vertraut sind und nicht viel mit Datenbanken arbeiten müssen, verwenden Sie sqlite3. Und wenn es Ihnen nichts ausmacht, etwas Zeit zu investieren, um etwas Großartiges zu lernen, dann nehmen Sie SQLAlchemy.

Zu den anderen Projekten, die Sie erwähnt haben:
Elixir scheint tot zu sein, und SQLAlchemy hat seine Funktionalität jetzt eingebaut, wahrscheinlich besser.
Camelot ist einfach seltsam... Ich würde es nicht benutzen.

1voto

memilanuk Punkte 3482

Ich bin in einer ähnlichen Situation... ziemlich früh in der PyQt-Lernkurve, auf der Suche nach einigen Datenbank-bezogenen Projekten zu arbeiten. Ich bin über einige Threads gestolpert, die sich wie die gleichen anhören, die du hast... sie sprechen über Sqlalchemy, Elixier oder Project Camelot in Verbindung mit PyQt4. Keiner von ihnen scheint jedoch wirklich ins Detail zu gehen, was die expliziten Vorteile angeht. Offenbar wird davon ausgegangen, dass die Vorteile für den Leser von Natur aus offensichtlich sind ;) Zum größten Teil... was ich herausgefunden habe, ist, dass man, sobald man ein gewisses Maß an Komplexität in Bezug auf sein Projekt erreicht hat, höchstwahrscheinlich mehr oder weniger einige der grundlegenden Abstraktionen für das Datenbankhandling unter Verwendung der anwendbaren Qt4-Objekte geschrieben hat und dass man Geld/Zeit sparen würde, wenn man einfach Sqlalchemy/Elixir verwenden würde, anstatt "sein eigenes Ding zu machen". Camelot geht da noch ein Stück weiter, soweit ich das beurteilen kann (ich bin selbst ein Grünschnabel).

Für die nahe Zukunft habe ich Folgendes beschlossen: Ich plane, mich durch die ersten paar grundlegenden Projekte zu arbeiten, mit dem DB-Zeug, das von PyQt bereitgestellt wird. Nachdem ich mit dem bequem bin, dann kann ich zurück gehen und Dinge mit Sqlalchemy, Elixier, etc. überarbeiten.

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