Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was sind die praktikablen Datenbankabstraktionsschichten für Python?

Sehen Sie sich SQLAlchemy sehr genau an.

Sie können mit SQLite testen und entwickeln.

Sie können mit MySQL in Produktion gehen und im Wesentlichen keine Änderungen an Ihren Anwendungen vornehmen.

Obwohl die DB-API weitgehend eingehalten wird, hat sie genug Flexibilität, dass (1) Sie nicht von SQL-Variationen im zugrunde liegenden RDBMS isoliert sind und (2) es immer noch DB-Treiber-spezifische Funktionen gibt, die schwer zu verbergen sind. P>

Eine weitere gute ORM-Schicht ist das ORM, das Teil von Django ist . Sie können (mit ein wenig Aufwand) nur das Django-ORM verwenden, ohne den Rest des Django-Webframeworks zu verwenden.

Verwenden Sie eine ORM-Schicht (SQLAlchemy oder SQLObject) anstelle von DB-API.

Wieso den? Ihr Modell sollte ein solides, klares und gut durchdachtes OO-Modell sein. Die relationale Abbildung sollte nach dem Objektmodell an zweiter Stelle stehen. SQLAlchemy macht dies zu einem vernünftigen Ansatz.

Ein "DB Abstraction Layer" wird im normalen Verlauf der Dinge passieren. Tatsächlich haben Sie wegen der DB-API (wie sie von SQLAlchemy verwendet wird) zwei Abstraktionsschichten angegeben:ORM und DB-API.