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

Patricia Arquette
Libérer: 2024-10-25 09:52:02
original
377 Les gens l'ont consulté

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

<code class="python">with engine.connect() as connection:
    result = connection.execute(text('SELECT * FROM your_table'))
    # Perform operations on the result</code>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!