Bases de données

DB-API

La Database API (DB-API) de Python définit une interface standard pour les modules d’accès à une base de données. Elle est documentée dans la PEP 249. Presque tous les modules de base de données Python comme sqlite3, psycopg et mysql-python se conforment à cette interface.

Tutoriels qui expliquent comment travailler avec les modules qui sont conformes à cette interface peuvent être trouvés ici et ici.

SQLAlchemy

SQLAlchemy est une boîte à outils pour base de données largement utilisée. Contrairement à de nombreuses bibliothèques de base de données, il ne fournit pas seulement une couche ORM, mais aussi une API généralisée pour l’écriture du code agnostique aux bases de données, sans SQL.

$ pip install sqlalchemy

Records

Records est une bibliothèque de SQL minimaliste, conçue pour envoyer des requêtes SQL brutes à diverses bases de données. Les données peuvent être utilisées par programmation, ou exportées vers un certain nombre de formats de données utiles.

$ pip install records

Inclut aussi un outil de ligne de commande for exporter les données SQL.

Django ORM

Django ORM est l’interface utilisée par Django pour fournir l’accès aux bases de données.

C’est basé sur l’idée des modèles, une abstraction qui rend plus facile de manipuler des données dans Python.

Les basiques:

  • Chaque modèle est une classe Python qui sous-classe django.db.models.Model.

  • Chaque attribut du modèle représente un champ de base de données.

  • Django vous donne une API d’accès aux bases de données générés automatiquement; voir Faire des requêtes.

peewee

peewee est un autre ORM dont le but est d’être léger avec le support de Python 2.6+ et 3.2+, qui supporte SQLite, MySQL et Postgres par défaut. La couche du modèle est similaire à celle de Django ORM et il a des méthodes de type SQL pour requêter les données. Alors que SQLite, MySQL et Postgres sont pris en charge directement, il y a une collection d’add-ons disponible.

PonyORM

PonyORM est un ORM qui prend une approche différente pour interroger la base de données. Au lieu d’écrire un langage similaire à SQL ou des expressions booléennes, la syntaxe pour les générateurs Python est utilisée. Il y a aussi un éditeur de schéma graphique qui peut générer des entités PonyORM pour vous. Il supporte Python 2.6+ et Python 3.3+ et peut se connecter à SQLite, MySQL, PostgreSQL et Oracle

SQLObject

SQLObject est encore un autre ORM. Il prend en charge une grande variété de bases de données: des systèmes de base de données communs comme MySQL, Postgres et SQLite et des systèmes plus exotiques comme SAP DB, SyBase et MSSQL. Il supporte seulement Python 2 à partir de Python 2.6 et supérieur.