在 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中文网其他相关文章!