Maison > Article > développement back-end > Voici quelques options de titre, en gardant à l’esprit le format de la question et en vous concentrant sur le problème principal : **Option 1 (directe et concise) :** * **Comment exécuter des requêtes SQL brutes dans Flask-SQLAlchemy ?** **Opter
Exécution de SQL brut dans Flask-SQLAlchemy
Lorsque vous travaillez avec Flask-SQLAlchemy, vous pouvez rencontrer un scénario dans lequel vous devez exécuter du SQL brut requêtes. Ces requêtes peuvent impliquer des jointures de tables complexes ou des vues en ligne. L'approche initiale démontrée dans la question utilisant connection.execute() peut déclencher des erreurs de passerelle. Pour résoudre ce problème, explorons les approches recommandées dans les versions 1.x et 2.0 de SQLAlchemy.
SQLAlchemy 2.0
Pour exécuter du SQL brut dans SQLAlchemy 2.0, vous pouvez exploiter la méthode Engine.connect() :
<code class="python">with engine.connect() as connection: result = connection.execute(text('SELECT * FROM your_table')) # Perform operations on the result</code>
En utilisant le gestionnaire de contexte Engine.connect(), vous vous assurez que la connexion est établie et automatiquement fermée à la sortie du contexte.
SQLAlchemy 1.x
Dans SQLAlchemy 1.x, vous pouvez exécuter du SQL brut à l'aide de la méthode db.engine.execute() en conjonction avec la fonction text() :
<code class="python">from sqlalchemy import text sql = text('select name from penguins') result = db.engine.execute(sql) names = [row[0] for row in result] print(names)</code>
Notez que la méthode db.engine.execute() exécute les requêtes « sans connexion », ce qui signifie qu'elle n'établit pas de session de base de données. Cette méthode est obsolète dans SQLAlchemy 2.0 et doit être évitée pour des raisons de cohérence et de bonnes pratiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!