本文主要是介绍解决sqlalchemy执行语句提示Not an executable object,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:
from sqlalchemy import create_engine# 数据库的变量
HOST = '127.0.0.1'
PORT = 3306
DATA_BASE = 'itbz'
USER='root'
PWD='123456'
# DB_URL = f'数据库的名+驱动名://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'
DB_URL = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'
engine = create_engine(DB_URL)# 执行一个SQL
sql ='select 1;'
conn = engine.connect()
rs = conn.execute(sql)
print(rs.fetchone())
执行结果:
解决问题:
在conn.execute()方法处抛出了错误,'select 1'不是一个可执行的对象
文本sql的执行,需要使用sqlalchemy中的text()方法处理字符串,再执行语句
1、导入 from sqlalchemy import text
2、关键部分修改如下:
result = conn.execute(text("select 1"))
from sqlalchemy import create_engine
from sqlalchemy import text# 数据库的变量
HOST = '127.0.0.1'
PORT = 3306
DATA_BASE = 'itbz'
USER='root'
PWD='123456'
# DB_URL = f'数据库的名+驱动名://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'
DB_URL = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'
engine = create_engine(DB_URL)# 执行一个SQL
sql ='select 1;'
conn = engine.connect()
rs = conn.execute(text(sql))
print(rs.fetchone())
执行结果:
这篇关于解决sqlalchemy执行语句提示Not an executable object的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!