Flask-SQLAlchemy での生の SQL の実行
Flask-SQLAlchemy を使用する場合、生の SQL を実行する必要があるシナリオが発生する可能性があります。クエリ。これらのクエリには、複雑なテーブル結合やインライン ビューが含まれる場合があります。 connection.execute() を使用した質問で示されている最初のアプローチは、ゲートウェイ エラーを引き起こす可能性があります。この問題に対処するために、SQLAlchemy バージョン 1.x および 2.0 で推奨されるアプローチを検討してみましょう。
SQLAlchemy 2.0
SQLAlchemy 2.0 で生の SQL を実行するには、以下を活用できます。 Engine.connect() メソッド:
<code class="python">with engine.connect() as connection: result = connection.execute(text('SELECT * FROM your_table')) # Perform operations on the result</code>
engine.connect() コンテキスト マネージャーを利用することで、接続が確立され、コンテキストを終了すると自動的に閉じられるようになります。
SQLAlchemy 1.x
SQLAlchemy 1.x では、db.engine.execute() メソッドと text() 関数を併用して生の SQL を実行できます:
<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>
db.engine.execute() メソッドはクエリを「コネクションレス」で実行することに注意してください。つまり、データベース セッションは確立されません。このメソッドは SQLAlchemy 2.0 では非推奨となっており、一貫性とベスト プラクティスのために避けてください。
以上が質問の形式を念頭に置き、核心的な問題に焦点を当てた、いくつかのタイトルのオプションを次に示します。 **オプション 1 (直接的かつ簡潔):** * **Flask-SQLAlchemy で生の SQL クエリを実行するにはどうすればよいですか?** **オプションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。