Article de reference

SQLAlchemy

[http://techspot.zzzeek.org/ Mike Bayer is the creator of SQLAlchemy and Mako Templates for Python.] "},"developer":{"wt":""},"released":{"wt":"{{Start date and age|2006|02|14}}...

Mike Bayer parle de SQLAlchemy à PyCon 2012

SQLAlchemy est une bibliothèque Python open source qui fournit un ensemble d'outils SQL (appelé « SQLAlchemy Core ») et un ORM ( Object-Relational Mapper ) pour les interactions avec les bases de données. Elle permet aux développeurs d'interagir avec les bases de données à l'aide d'objets Python, offrant ainsi un accès efficace et flexible aux données.

de schémas de bases de données , l'interrogation de bases de données et le mappage objet-relationnel. Ses principales fonctionnalités sont :

  • Un langage de domaine intégré et complet pour SQL en Python, appelé « SQLAlchemy Core », qui fournit les moyens de construire et d'exécuter des requêtes SQL.
  • Un ORM puissant qui permet de mapper les classes Python aux tables de la base de données.
  • Prise en charge des migrations de schémas de base de données.
  • Compatibilité avec plusieurs systèmes de bases de données.
  • Outils pour la mise en commun des connexions aux bases de données et la gestion des transactions.

Histoire

SQLAlchemy a été lancé en février 2006. Il a évolué pour inclure un large éventail de fonctionnalités d'interaction avec les bases de données et a gagné en popularité auprès des développeurs Python. Parmi les versions notables, on peut citer :

  • Version 0.1 (2006) : Version initiale.
  • Version 1.0 (2015) : Améliorations majeures dans l'ORM et le langage d'expression SQL.
  • Version 1.4 (2021) : Introduction d'une nouvelle API ORM .

Exemple

L'exemple suivant illustre une relation n-à-1 entre les films et leurs réalisateurs. Il montre comment des classes Python définies par l'utilisateur créent les tables de base de données correspondantes, comment des instances avec des relations sont créées de part et d'autre de la relation, et enfin comment les données peuvent être interrogées — en présentant des requêtes SQL générées automatiquement pour le chargement différé et le chargement immédiat.

Définition du schéma

Création de deux classes Python et des tables de base de données correspondantes dans le SGBD :

id = Colonne ( Entier , clé_primaire = Vrai ) titre = Colonne ( Chaîne ( 255 ), nullable = Faux ) année = Colonne ( Entier ) dirigé_par = Colonne ( Entier , Clé_étrangère ( "directeurs.id" ))réalisateur = relation ( "Réalisateur" , référence arrière = "films" , paresseux = Faux )def __init __ ( self , title = None , year = None ) : self.title = title self.year = yeardef __repr__ ( self ): return f "Film( { self . title } , { self . year } , { self . director } )"classe Directeur ( Base ): __tablename__ = "directeurs"id = Colonne ( Entier , clé_primaire = Vrai ) nom = Colonne ( Chaîne ( 50 ), nullable = Faux , unique = Vrai )def __init __ ( self , name = None ) : self.name = namedef __repr__ ( self ): return f "Directeur( { self . nom } )"moteur = créer_moteur ( "dbms://utilisateur:mot_de_passe@ hôte / nom_de_la_base " ) Base.métadonnées.créer_tout ( moteur )

Insertion de données

On peut insérer une relation réalisateur-film via l'une ou l'autre entité :

Robocop" , 1987 ) m1.réalisateur = Réalisateur ( "Paul Verhoeven " )d2 = Réalisateur ( "George Lucas" ) d2 . films = [ Film ( "Star Wars" , 1977 ), Film ( "THX 1138" , 1971 )]essayer : session.add ( m1 ) session.add ( d2 ) session.commit ( ) sauf : session.rollback ( )

Interrogation

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index