Roh-SQL in Flask-SQLAlchemy ausführen
Bei der Arbeit mit Flask-SQLAlchemy kann es vorkommen, dass Sie Roh-SQL ausführen müssen Abfragen. Bei diesen Abfragen kann es sich um komplexe Tabellenverknüpfungen oder Inline-Ansichten handeln. Der in der Frage gezeigte anfängliche Ansatz mit „connection.execute()“ kann Gateway-Fehler auslösen. Um dieses Problem zu beheben, untersuchen wir die empfohlenen Ansätze in den SQLAlchemy-Versionen 1.x und 2.0.
SQLAlchemy 2.0
Um Roh-SQL in SQLAlchemy 2.0 auszuführen, können Sie Folgendes nutzen die Methode engine.connect():
<code class="python">with engine.connect() as connection: result = connection.execute(text('SELECT * FROM your_table')) # Perform operations on the result</code>
Durch die Verwendung des Kontextmanagers engine.connect() stellen Sie sicher, dass die Verbindung hergestellt und beim Verlassen des Kontexts automatisch geschlossen wird.
SQLAlchemy 1.x
In SQLAlchemy 1.x können Sie Roh-SQL mit der Methode db.engine.execute() in Verbindung mit der Funktion text() ausführen:
<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>
Beachten Sie, dass die Methode db.engine.execute() Abfragen „verbindungslos“ ausführt, d. h. keine Datenbanksitzung aufbaut. Diese Methode ist in SQLAlchemy 2.0 veraltet und sollte aus Gründen der Konsistenz und Best Practices vermieden werden.
Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, unter Berücksichtigung des Fragenformats und der Konzentration auf das Kernthema: **Option 1 (direkt und prägnant):** * **Wie führe ich Raw-SQL-Abfragen in Flask-SQLAlchemy aus?** **Opt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!