Outils pour utilisateurs

Outils du site


dev:python:flask:flask_sqlalchemy

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
dev:python:flask:flask_sqlalchemy [2025/07/27 15:04] yoanndev: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>dev python orm sqlachemy}}+{{tag>dev python orm flask sqlachemy}}
  
 :TODO_DOCUPDATE: :TODO_DOCUPDATE:
Ligne 18: Ligne 18:
 pip install Flask-SQLAlchemy pip install Flask-SQLAlchemy
 </code> </code>
 +
 +===== Options de configuration =====
 +
 +Lors de la phase de développement ou pendant les tests, il peut être utile d'utiliser une base de donnée SQLite en RAM seulement (pour éviter les écritures sur disque).
 +
 +Pour cela on définit la valeur de la variable de configuration ''SQLALCHEMY_DATABASE_URI'' comme indiqué ci-dessous :
 +
 +<code python>
 +# Pour utiliser une base SQLite en mémoire l'URL doit être vide
 +app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite://'
 +</code>
 +
 +
 +
 +Il peut être également utile d' [[dev:python:flask:extensions:flask-sqlalchemy:afficher-les-requetes|afficher les requêtes produites par l'ORM]].
 +
 +
 +
 +
 +
  
 ===== Types de champs usuels ===== ===== Types de champs usuels =====
Ligne 44: Ligne 64:
 [<MarkerCategory id=2 name="memo" builtin=True icon=/static/img/notepad_9021656_icon.png marker_icon=None >] [<MarkerCategory id=2 name="memo" builtin=True icon=/static/img/notepad_9021656_icon.png marker_icon=None >]
 </code> </code>
-===== Relation one-to-many ===== 
  
  
 +===== 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, 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)}")
 +</code>
  
 ===== Références ===== ===== Références =====
Ligne 59: Ligne 99:
   * https://www.youtube.com/watch?v=g0-7TrVCNtg   * https://www.youtube.com/watch?v=g0-7TrVCNtg
   * [[https://codezup.com/mastering-database-operations-with-sqlalchemy-flask/|Maitriser les opérations sur les bases de données avec Flask-SQLAlchemy (codezup.com)]]   * [[https://codezup.com/mastering-database-operations-with-sqlalchemy-flask/|Maitriser les opérations sur les bases de données avec Flask-SQLAlchemy (codezup.com)]]
 +  * [[https://dnmtechs.com/catching-sqlalchemy-exceptions-in-python-3-programming/|Traitement des exceptions SQLAlchemy (dnmtechs.com)]]
dev/python/flask/flask_sqlalchemy.1753628690.txt.gz · Dernière modification : 2025/07/27 15:04 de yoann