Outils pour utilisateurs

Outils du site


dev:python:flask:flask_sqlalchemy

Ceci est une ancienne révision du document !


:TODO_DOCUPDATE:

L'extension Flask-SQLAlchemy

A propos de SQLAlchemy

SQLAlchemy est un ORM (Object-Relational Mapping) il permet de traduire les objets Python en données pouvant être enregistrées dans un SGBD externe.

Installation

Pour pouvoir utiliser l'extension, installer le module Flask-SQLAlchemy

# Dans votre environnement virtuel
pip install Flask-SQLAlchemy

Types de champs usuels

  • db.Boolean
  • db.Integer
  • db.Float(precision=2)
  • db.String(100)
  • db.Text
  • db.Date
  • db.DateTime

source : Les types de données (docs.sqlalchemy.org)

Réordonner les enregistrements

Ici on récupères tous les enregistrements en spécifiant l'ordre

Utiliser Clause WHERE

>>> # Récupère l'enregistrement dont le nom est 'memo'
>>> mc = MarkerCategory.query.where(MarkerCategory.name == 'memo').all()
>>> mc
[<MarkerCategory id=2 name="memo" builtin=True icon=/static/img/notepad_9021656_icon.png marker_icon=None >]

Définition des associations

Les différentes associations entre tables sont abordées dans les notes suivantes :

  • Définir des associations one-to-many
  • Définir des associations many-to-many

Traitement des erreurs

from sqlalchemy.exc import IntegrityError, OperationalError
...
 
try:
    # Code SQLAlchemy susceptible de lever une exception
    db.session.commit()
 
except (IntegrityError, OperationalError) as e:
    # Traitement des exceptions
    db.session.rollback()
    print(f"An error occurred: {str(e)}")

Références

dev/python/flask/flask_sqlalchemy.1754746613.txt.gz · Dernière modification : 2025/08/09 13:36 de yoann