| accessibilité internet: réduction taille du texte accessibilité internet: agrandissement taille du texte | impression du contenu principal de cette page web fermez

Abstraction de base de données SQL en objets Python avec SQLAlchemy

formation base de donnees et services de développement orm sqlalchemy

L'ORM SQLAlchemy banalise l'utilisation des bases de données SQL

développement et formation base de données mysql, postgresql, oracle, pysql, ms-sql par RasadaCrea, Grenoble - France

Disponible sous licence libre MIT, SQLAlchemy ORM (object relational mapper) est un outil fondamental Python d'interface de base de données SQL, qui permet aux développeurs un accès direct à toute base de données relationnelle. Conçu pour un accès efficace par des simples objets python, SQLAlchemy peut interagir avec la majorité des serveurs de base de données, comme par exemple SQLite, Postgresql, MySQL, Oracle, MS-SQL, Firebird, Sybase et d'autres encore.

Sa couche d'abstraction de données permet de créer et manipuler des expressions SQL indépendemment du serveur de base de données. Avec une architecture claire et des fonctionnalités puissantes, SQLAlchemy est le choix ORM de RasadaCrea pour vos applications de services web et d'analyse de données d'entreprise :

  • Un batch flush avec un "tri en dépendance de queue pour respecter les dépendances de rangées de données"
  • Query construites sur fonctions, à partir de fonctions python
  • Chargement d'objets paresseux ou pressé, pour une flexibilité maximale d'accès en base de données
  • Clés primaires en multi colonne, tables et mappeurs auto référentiels
  • Héritage sur tables simples ou reliées

Base de données SQL : trivial avec SQLAlchemy ORM & programmation Python

>>> from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, Sequence
>>> from sqlalchemy.orm import mapper, sessionmaker
>>> engine = create_engine('sqlite:///:memory:')           ##connexion à bd
>>> metadata = MetaData()                                  ##exploration objets
>>> users_table = Table('users', metadata,
...     Column('id', Integer, Sequence('user_id_seq'), primary_key=True),
...     Column('name', String(50)), )
>>> metadata.create_all(engine)                            ##création table
>>> class User(object):                                    ##objet d'application python
...     def __init__(self, name):
...         self.name = name
...     def __repr__(self):
...         return "<User('%s')>" % (self.name)
>>> mapper(User, users_table)                              ##lie l'objet python à la table bd
>>> Session = sessionmaker(bind=engine); session=Session() ##communication bd avec une Session
>>> user_dan = User('dan')                                 ##un objet python
>>> session.add(user_dan)                                  ##tampon session avant bd écriture
>>> user = session.query(User).filter_by(name='dan').first()
>>> user is user_dan