问题场景:

在flask框架中连接数据库,并测试数据库是否连接成功

使用了mysql数据库和pymysql驱动

问题描述

in execute
    raise exc.ObjectNotExecutableError(statement) from err    
sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select 1'

这是错误的相关代码,在conn.execute()方法处抛出了错误

db=SQLAlchemy(app)
with app.app_context():
    with db.engine.connect() as conn:
        result = conn.execute("select 1")
        print(result.fetchone())

原因分析:

'select 1'不是一个可执行的对象


解决方案:

文本sql的执行,需要使用sqlalchemy中的text()方法处理字符串,再执行语句

1、导入 from sqlalchemy import text

2、关键部分修改如下:

result = conn.execute(text("select 1"))

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐