SQLAlchemy

SQLAlchemy ist eine Python-Bibliothek zur Integration relationaler Datenbanken.

SQLAlchemy unterstützt eine Vielzahl relationaler Datenbanken, bietet eine niedrigschwellige Verwaltung der Verbindungen, eine Python-API zur Erstellung von SQL-Anfragen und Object/Relational Mapping (ORM)-Funktionalität.

In unserem Beispiel werden wir SQLAlchemy verwenden um unsere beiden Datenbanken zu implementieren, um Objekte auf Relationen abzubilden und um SQL-Anfragen zu erstellen. Darüberhinaus werden wir mit collective.lead Datenbankverbindungen verwalten und SQL-Transaktionen in Zope-Transaktionen zu überführen.

Wesentliche Komponenten von SQLAlchemy sind:

Engine

verwaltet die Datenbankverbindungen.

In unserem Fall wird Engine verwaltet von collective.lead.interfaces.IDatabase.

Table
repräsentiert eine Datenbanktabelle.
Metadata
bindet Tabellen an eine spezifische Engine.
Mapper
repräsentiert ein Eintrag in einer Datenbank als Python-Klasse.
Session
verwaltet Instanzen von Mapper-Klassen. Eine Session kann neue Instanzen von einer Datenbank laden, Änderungen an Objekten sichern und neue Objekte als Records in der Datenbank speichern.
Connection
erlaubt die Ausführung von SQL-Anfragen, entweder als Python-Anweisung oder als String.