Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| dev:python:flask:flask_sqlalchemy [2024/11/20 00:25] – yoann | dev:python:flask:flask_sqlalchemy [2025/08/28 18:35] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| : | : | ||
| - | ====== | + | ====== |
| + | ===== 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' | ||
| + | |||
| + | <code bash> | ||
| + | # Dans votre environnement virtuel | ||
| + | pip install Flask-SQLAlchemy | ||
| + | </ | ||
| + | |||
| + | ===== Options de configuration ===== | ||
| + | |||
| + | Lors de la phase de développement ou pendant les tests, il peut être utile d' | ||
| + | |||
| + | Pour cela on définit la valeur de la variable de configuration '' | ||
| + | |||
| + | <code python> | ||
| + | # Pour utiliser une base SQLite en mémoire l'URL doit être vide | ||
| + | app.config[" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | Il peut être également utile d' [[dev: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Types de champs usuels ===== | ||
| + | |||
| + | * db.Boolean | ||
| + | * db.Integer | ||
| + | * db.Float(precision=2) | ||
| + | * db.String(100) | ||
| + | * db.Text | ||
| + | * db.Date | ||
| + | * db.DateTime | ||
| + | |||
| + | source : [[https:// | ||
| + | |||
| + | ===== Réordonner les enregistrements ===== | ||
| + | |||
| + | Ici on récupères tous les enregistrements en spécifiant l' | ||
| + | |||
| + | |||
| + | ===== Utiliser Clause WHERE ===== | ||
| + | |||
| + | <code python> | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | [< | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== 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 ===== | ||
| + | |||
| + | <code python> | ||
| + | from sqlalchemy.exc import IntegrityError, | ||
| + | ... | ||
| + | |||
| + | try: | ||
| + | # Code SQLAlchemy susceptible de lever une exception | ||
| + | db.session.commit() | ||
| + | | ||
| + | except (IntegrityError, | ||
| + | # Traitement des exceptions | ||
| + | db.session.rollback() | ||
| + | print(f" | ||
| + | </ | ||
| ===== Références ===== | ===== Références ===== | ||
| + | * https:// | ||
| + | * https:// | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||