sql >> Database >  >> RDS >> Mysql

Wat zijn de haalbare database-abstractielagen voor Python?

Kijk heel goed naar SQLAlchemy.

Je kunt testen en ontwikkelen met SQLite.

U kunt met MySQL in productie gaan, waarbij u in wezen geen wijzigingen aan uw applicaties aanbrengt.

Hoewel de DB-API algemeen wordt nageleefd, biedt het voldoende flexibiliteit om (1) u niet geïsoleerd te houden van SQL-variaties in het onderliggende RDBMS en (2) er nog steeds DB-stuurprogrammaspecifieke functies zijn die moeilijk te verbergen zijn.

Een andere goede ORM-laag is de ORM die deel uitmaakt van Django . Je kunt (met een beetje moeite) alleen de Django ORM gebruiken zonder de rest van het Django-webframework.

Gebruik een ORM-laag (SQLAlchemy of SQLObject) in plaats van DB-API.

Waarom? Je model moet een solide, duidelijk, goed doordacht OO-model zijn. De relationele mapping zou op de tweede plaats moeten komen na het objectmodel. SQLAlchemy maakt dit een redelijke benadering.

Een "DB Abstraction Layer" zal gebeuren in de normale gang van zaken. Inderdaad, vanwege DB-API (zoals gebruikt door SQLAlchemy) heb je twee abstractielagen gegeven:ORM en DB-API.



  1. kolom verwijderen bestaat niet

  2. Dichtstbijzijnde locatie zoeken op postcode?

  3. Hoe databases e-commercebedrijven ondersteunen

  4. Importeer .frm- en .opt-bestanden naar MySQL