sql >> Database teknologi >  >> RDS >> Mysql

Hvad er de levedygtige databaseabstraktionslag for Python

Se meget nøje på SQLAlchemy.

Du kan teste og udvikle med SQLite.

Du kan gå i produktion med MySQL – stort set ingen ændringer i dine applikationer.

Selvom DB-API’en er bredt overholdt, har den tilstrækkelig fleksibilitet til at (1) du ikke er isoleret fra SQL-variation i det underliggende RDBMS og (2) der stadig er DB-driverspecifikke funktioner, som er svære at skjule.

Et andet godt ORM-lag er ORM, der er en del af Django . Du kan (med en lille indsats) kun bruge Django ORM uden at bruge resten af ​​Djangos webramme.

Brug et ORM-lag (SQLAlchemy eller SQLObject) frem for DB-API.

Hvorfor? Din model skal være en solid, klar, gennemtænkt OO-model. Den relationelle kortlægning bør komme i anden række efter objektmodellen. SQLAlchemy gør dette til en rimelig tilgang.

Et "DB Abstraktionslag" vil ske i det normale hændelsesforløb. På grund af DB-API (som brugt af SQLAlchemy) gav du faktisk to abstraktionslag:ORM og DB-API.



  1. Hvor er mit ugyldige tegn (ORA-00911)

  2. Konverter 'smalldatetime' til 'time' i SQL Server (T-SQL-eksempler)

  3. Postgres unikke begrænsning vs indeks

  4. Hvad er der galt med denne kode, der bruger mysql-udvidelsen til at hente data fra en database i PHP?