Merkmale und Philosophie

Eine Übersicht, worum es bei SQLAlchemy geht.

Was die Leute über SQLAlchemy sagen

SQLAlchemy ist wahrscheinlich die einzige Bibliothek, bei der ich noch nie an den Punkt gelangt bin, an dem ich dachte: "Moment, ich muss etwas tun und kann es nicht". Jeder einzelne seltsame Grenzfall, den ich behandeln musste, wurde entweder nativ unterstützt oder durch die Möglichkeit, direkt auf die rohen Schnittstellen zuzugreifen, auf saubere Weise gelöst. Fantastische Bibliothek, ich kann sie nicht hoch genug empfehlen.

Eine wirklich solide, vielleicht einzigartige Bibliothek, die, soweit ich das beurteilen kann, das Argument des "Impedance Mismatch" vollständig adressiert. Wenn Sie eine Datenbank-API auf strukturierte Weise direkt verwenden, haben Sie wahrscheinlich bereits den SQLAlchemy-Kern neu implementiert, und wenn Sie Ihr Programm auf SQLAlchemy umstellen, erhalten Sie ein ORM, falls Sie eines wünschen, und machen Ihren Code portabel über Datenbankimplementierungen hinweg, auch wenn Sie es nicht tun. Wenn Sie bereits ein ORM verwenden, ermöglicht Ihnen die Umstellung auf SQLAlchemy, die Low-Level-Datenbankoperationen kohärent zu optimieren (d. h. nicht nur SQL über die Modelle zu streuen).

Ich bin der größte Verfechter von korrektem, durchdachtem und performantem SQL bei der Arbeit, und ich muss sagen, dass eine ORM/Datenbanktreiber-Kombination meine Meinung zu ORMs verschoben hat.

Wenn Sie SQLAlchemy (ein ORM für Python) verwenden, fühlen Sie sich vollständig kontrolliert darüber, was im Hintergrund geschieht.

Erstens hatten sie die brillante Idee, eine Abstraktion über SQL zu erstellen, BEVOR sie ein ORM bauten, so dass Sie, wenn Sie nicht mit Objekten arbeiten möchten, die Ihrer Tabelle zugeordnet sind, direkt mit Dictionaries arbeiten können, und zwar mithilfe einer schönen SQL-Generierungs-API, die es Ihnen ermöglicht, Ihren SQL-Code mühelos zu refaktorieren/zu überprüfen.

Zweitens ist das ORM selbst fantastisch. Ich weiß nicht wirklich, wie ich es erklären soll, aber Sie haben immer das Gefühl, die Kontrolle über das zu haben, was passiert. Und wenn etwas nicht so funktioniert, wie Sie es erwarten, können Sie das Framework immer erweitern. Es ist dafür extrem gut geeignet.

Ich fordere, dass SQLAlchemy in SQLAwesome umbenannt wird. Aus keinem besonderen Grund.

SQLAlchemy ist eine der am besten gestalteten Bibliotheken, die ich jemals für irgendeine Softwareaufgabe verwendet habe, Punkt. Ich habe damit alle möglichen verrückten reflexiven Joins durchgeführt, die Metaprogrammierungsfähigkeiten genutzt, um mein ORM von Grund auf aufzubauen, meine eigenen Rails-ähnlichen Scope-Features zur Session Maker hinzugefügt, usw. SQLAlchemy funktioniert einfach (TM). Wenn Sie ein Python-Guy sind, ist das Erlernen eine der besten Dinge, die Sie tun können.

...es ist die Art von Bibliothek, die nicht nur den Bedarf deckt, den sie adressiert, sondern auch die Sprache empfiehlt, in der sie geschrieben ist -- wenn ich an eine andere Sprache als Python für ein Projekt mit einer Datenbank denke, ist mein erster Gedanke immer: 'aber was würde SQLAlchemy ersetzen?'

Habe nach vielen Schlachten mit Hibernate/Entity Framework/etc. das Vertrauen in ORMs verloren. SQLAlchemy stellt es wieder her. ORM richtig gemacht.

- Jan-Erik Strøm

Es gibt viele Python-Bibliotheken/Frameworks, die wir verwenden können, und einige davon sind ein großer Vorteil für das Schreiben von Webdiensten. SQLAlchemy fällt mir ein, das meiner Meinung nach eines der besten ORM/DB-Tools überhaupt ist, alle Sprachen eingeschlossen.

- Tarek Ziadé, Kernentwickler von Firefox Sync

Liebe #SQLAlchemy für #Python im Moment. Es hat mir 95% der schweren Arbeit abgenommen. "Faules" Programmieren ist das Beste!

Dann stellte ich fest, dass ich ein Schema in SQLAlchemy definiert hatte. Benutze es, um mein Schema in PostgreSQL neu zu erstellen. Booyah. Bestes ORM, das ich je gesehen habe. In jeder Sprache.

#sqlalchemy ist ernsthaft das beste ORM. Kein anderes ORM in einer anderen Sprache kommt auch nur annähernd heran.

Das einzige Toolkit, das sogar noch besser ist? SQLAlchemy. Es ist so ziemlich die einzige Möglichkeit, wie ich von nun an mit RDBMS-Systemen in Python interagieren werde. Und ich meine nicht, dass ich jede RDBMS-Interaktion als Objekt-relationales Mapping schreiben werde. SQLAlchemy ist großartig, weil es eine gute Verbindung/Pooling-Infrastruktur bietet; eine gute Pythonic-Query-Building-Infrastruktur; und dann eine gute ORM-Infrastruktur, die komplexe Abfragen und Mappings (sowie einige ziemlich einfache) bewältigen kann.

Ich benutze SQLAlchemy jetzt seit etwa zwei Tagen und ich kann Ihnen sagen, es ist unvergleichlich. Das ORM ist das flexibelste, das ich je gesehen habe. Es ist verdammt magisch.

Für einen kurzen Moment dachte ich, ich hätte etwas gefunden, das SQLAlchemy nicht perfekt kann.

- S. Lott

Als Benutzer aller Arten von ORMs und als Schreiber vieler eigener muss ich sagen, dass ich von SQLAlchemy extrem beeindruckt bin... Es ist wunderbar dokumentiert und hat eine großartige Philosophie. Wenn Sie etwas anderes verwenden, sollten Sie dies definitiv ausprobieren.

- Andy Smith

Sehr gut und sehr schnell einsatzbereit in meinen Mac-Entwicklungs- und Linux-Deployment-Umgebungen. Ich sammle derzeit Daten aus drei verschiedenen Datenbanken (SQLite, PostgreSQL und MySql) auf fünf verschiedenen Servern. Das ist für mich eine Killer-Anwendung. Ich werde seine objektrelationalen Fähigkeiten bald untersuchen, aber ich mag das Framework bereits jetzt sehr und wie leicht es sich anfühlt.

- Bruce Kroeze

Die Verwendung von SQLAlchemy hat definitiv die Art und Weise verändert, wie ich über Datenbankzugriff nachdenke, wenn ich eine Anwendung entwerfe.