sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: ‘select 1’

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

使用了mysql数据库和pymysql驱动

问题描述

代码

db = SQLAlchemy(app)
with app.app_context():
  with db.engine.connect() as conn:
    rs = conn.execute('select 1')
    print(rs.fetchone()) # (1,)

抛出问题

 

原因分析
‘select 1’不是一个可执行的对象

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

1、导入

 from sqlalchemy import text

2、关键部分修改如下:

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