Article
· Juin 26, 2023 3m de lecture

SQLAlchemy - la façon la plus simple d'utiliser Python et SQL avec les bases de données d'IRIS

Introduction

Dans certains des derniers articles, j'ai parlé des types entre IRIS et Python, et il est clair qu'il n'est pas facile d'accéder aux objets d'un côté à l'autre.  

Heureusement, un travail a déjà été fait pour créer SQLAlchemy-iris (suivez le lien pour le voir sur Open Exchange), qui rend tout beaucoup plus facile pour Python d'accéder aux objets d'IRIS, et je vais montrer les starters pour cela.

Merci à @Dmitry Maslennikov !

 

Installation

Pour l'installer, il suffit d'ouvrir votre terminal avec un accès administrateur et de taper

pip install sqlalchemy-iris

et les pré-requis seront également installés pour vous, si nécessaire.

 

Utilisation

Maintenant, sur un fichier python, vous pouvez importer le module, vous connecter à la base de données et jouer avec sqlalchemy comme vous le souhaitez. Si vous vous sentez à l'aise, vous pouvez suivre les étapes suivantes :

 

  • Importez "create_engine" de sqlalchemy et créez le moteur avec la chaîne "iris://username:password@IP:port/namespace". Bien sûr, vous pouvez importer tout le module, mais "create_engine" crée une instance de Engine (sqlalchemy.engine, pour plus d'informations cliquez ici) qui a toutes les sous-classes nécessaires pour ce que je présente ici..
from sqlalchemy import create_engine

engine = create_engine("iris://_SYSTEM:SYS@localhost:1972/SAMPLE")
  • Créez la connexion (sqlalchemy.engine.connection, pour plus d'informations cliquez ici) ainsi vous pourrez travailler avec des transactions, des exécutions simples, etc.
conn = engine.connect()

C'est très bien ! Vous avez maintenant configuré l'accès à votre base de données.

 

Pour une simple requête SELECT, et pour itérer à travers l'ensemble des résultats, faites ce qui suit (comme d'habitude, en utilisant comme exemple le tableau créé dans cet article):

query = 'SELECT Name, Age  from Sample.PersistentData WHERE Age >=21'
result = conn.exec_driver_sql(query)

Maintenant, le résultat est un CursorResult (sqlalchemy.engine.CursorResult). Vous pouvez vérifier tout ce que vous pouvez faire avec un CursorResult ici, dans la documentation officielle. C'est tout ce que vous avez à faire pour une simple itération :

print("Name, Age")
for row in result:
    print(row[0], ", ", row[1])

 et avec un peu de formatage, vous pouvez avoir un résultat du type suivant :

 

Maintenant comme vous savez par où commencer, vous pouvez également consulter la documentation officielle pour plus de détails et de possibilités.

 

PS : vous pouvez également importer "text" de sqlalchemy et exécuter la requête comme suit

result = conn.execute(text(query))

ce qui produira exactement les mêmes résultats.

  

Conclusion

Vous pouvez également exécuter des DDL et toute autre instruction DML, et il y a un support encore plus important pour travailler avec un un mapping objet-relationnel ORM (_Object Relational Mapping), _mais comme ceci n'est qu'un "démarrage", je n'irai pas plus loin.

Souhaitez-vous plus de tutoriels avec SQLAlchemy ? Peut-être la prochaine fois en utilisant ORM ?
N'hésitez pas à me contacter si vous avez des doutes !

Discussion (0)0
Connectez-vous ou inscrivez-vous pour continuer