"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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

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

Publié le 2024-11-04
Parcourir:531

Here are a few title options, keeping in mind the question format and focusing on the core issue:

**Option 1 (Direct and concise):**

* **How to Execute Raw SQL Queries in Flask-SQLAlchemy?** 

**Option 2 (Highlighting the  difference between 1.x and 2.0

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() :

with engine.connect() as connection:
    result = connection.execute(text('SELECT * FROM your_table'))
    # Perform operations on the result

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() :

from sqlalchemy import text

sql = text('select name from penguins')
result = db.engine.execute(sql)
names = [row[0] for row in result]
print(names)

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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3