XRecord

ein introspektierender Python-Orm
Jetzt downloaden

XRecord Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Jakub Wroniecki
  • Website des Verlags:

XRecord Stichworte


XRecord Beschreibung

Ein introspektiver Python-Orm XRecord ist eine Bibliothek, die eine Objektschnittstelle zu Datenbanken bereitstellt. Tabellen sind als Klassen dargestellt, Spalten sind Attribute und Datenreihen sind Klasseninstanzen. Wenn Sie Python für die Entwicklung von Datenbankanwendungen verwendet haben, haben Sie möglicherweise einen oder mehrere Ormen gestoßen, z. B.: * sqlobject * sqlalchemy * Herbst * Storm * Viele mehr ... XRecord soll keine von ihnen ersetzen, sondern ein Alternativer Ansatz zur Objektrelationszuordnung. XRecord versucht auch, eine dünne Datenbankabstraktionsschicht zu sein - die Verwendung eines RDBMS schnell und einfach zu sein, ohne die seiner leistungsstarken Funktionen zu verstecken. Warum ist ein anderer Orm? Es scheint, dass der "Python-Orm-Markt" mit einigen ausgezeichneten Lösungen gefüllt ist Was wird von ihnen wirklich gut erwartet. Bei der Verwendung der meisten von ihnen stellte ich jedoch fest, dass sie alle einige Designentscheidungen teilen, infolge davon, wodurch sie nicht genau meinen Bedürfnissen passen. Die meisten bestehenden Python-Ormen müssen tatsächlich die Klassen schreiben, an die die Datenreihen von Daten zugeordnet werden . Sie müssen die Fremdschlüssel in Ihren Klassen (Tische) explizit definieren und die vielen zu vieler Beziehungen beschreiben. Da all diese Informationen bereits in Ihrem RDBMS sind, glaube ich, dass dies in einem kleinen Konflikt mit dem trockenen Prinzip ist, von dem ich ein großer Fan bin. Einige Ormen versuchen, diesem Problem zu entsprechen, indem Sie die Definition der Datenbank (Modell) vollständig in Python-Code verlassen, aber dies ist nur eine oberflächliche Lösung - obwohl Ihr Modell in Python definiert ist, werden Ihre Daten noch in einer externen Datenbank gespeichert und ihre Strukturen Sie müssen nicht immer synchron sein. Dadurch wird der Code sauber aussehen und RDBMS unabhängig. Es ist üblich, dass Anwendungen mit SQLite entwickelt und getestet werden, und dann in der Produktion auf MySQL / PostgreSQL umgewandelt, was sowohl elegant als auch praktisch ist. Wie auch immer dieser Ansatz hat einige Probleme. Alle weit verbreiteten RDBMs sind hoch entwickelte, ältere Projekte, mit Tausenden von Menschenstunden in Entwicklung, Prüfung und Optimierung. Die meisten von ihnen führen viele praktische Verbesserungen an den SQL-Standard (Nicht-Standardtypen, alternative Syntax usw.), die möglicherweise verloren gehen können, wenn eine einheitliche Abstraktionsschicht (das, BTW, eine Quelle neuer Fehler sein kann). So der Preis für Der Reinigungscode und die Plattformunabhängigkeit können eine reduzierte Funktionalität Ihres Datenbanksystems sein. Beim Schreiben von schnellen, kleinen Anwendungen wähle ich oft mein RDBMS-Backend-Back-Ende auf der Grundlage eines seiner charakteristischen Funktionen, der meine Arbeit schneller machen wird, sodass ich nach einem von ihm verwendeten ORM suchte, anstatt mehr schwieriger. dass alle oben genannten Ormen eingebaute Hacks (oder sogar Eigenschaften :)) haben, um all diese Probleme zu überwinden. Das stimmt, aber es ist einfach nicht so, wie sie verwendet wurden Funktionen, die nicht ausgelassen wurden * Keine Objekt-Zwischenspeicherung, kein Speicherplatz * Keine Möglichkeit, SELECT-Anfragen anzupassen, ohne SQL * Keine automatischen Datenbankgenerationen unterstützt : · Vollständige Introspektion, keine Modelldefinition in Python erforderlich, · Automatisches Fremdschlüssel-Mapping, sowohl in den referenzierten als auch in Bezug auf Referenzierung von Objekten, · Automatische Viele-zu-Viele-Beziehungskennung, · Optionale Fremdkapitalreferenzen Caching, · Erweitern Sie einfach generierte Datensätze, um zusätzliche Funktionalität für Ihre Objekte bereitzustellen, · Leichter FK- und MTM-Beziehungen definieren, die in der Datenbankdefinition aufgebracht wurden, · Objektzuordnung einer SQL-Anweisung, · Kann verwendet werden, ohne eine einzige Linie von SQL zu schreiben, · Primärschlüssel mit mehreren Spalten, · Datenbankverbindungsobjekte für langlaufende Anwendungen entwickelt Anforderungen: · Python


XRecord Zugehörige Software