create_engine()连接数据库,获取表数据

'Connection' object has no attribute 'exec_driver_sql'


根据您提供的信息,我不能确定您在使用哪种 Python 数据库包连接数据库和执行 SQL 语句。不过,可以给您提供一个示例代码:

Copy Code
import pyodbc

# 建立数据库连接
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=<server_name>;DATABASE=<db_name>;UID=<user_id>;PWD=<password>')

# 创建一个游标对象
cursor = cnxn.cursor()

# 执行 SQL 查询语句,获取表数据
cursor.execute('SELECT * FROM <table_name>')

# 获取查询结果,可以通过 fetchall() 方法获取所有记录,或者通过 fetchone() 方法获取一条记录
rows = cursor.fetchall()

# 处理查询结果
for row in rows:
    print(row)

# 关闭游标和数据库连接
cursor.close()
cnxn.close()

要解决这个问题,sqlalchemy 先不管你用的版本问题,你需要使用 create_engine 函数的第二个参数指定要使用的数据库驱动,案例:

from sqlalchemy import create_engine
import pymysql
# 指定连接数据库的地址、端口,以及要连接的数据库名称
DB_URL = 'mysql+pymysql://username:password@localhost:3306/testdb'
# 指定要使用的数据库驱动
engine = create_engine(DB_URL, create_engine_kwargs={'connect_args': {'charset': 'utf8'}})

原理就是将 ‘pymysql’ 指定为要使用的数据库驱动,以避免出现错误。另外,可以使用 connect_args 参数传递连接数据库的其他选项,例如指定字符编码等。之后,就可以使用 engine 连接并操作数据库了。如果还报错,那就你把我给的案例代码去掉还原你自己的代码,只需要把sqlalchemy 版本降低几个版本,多试试找到最合适的版本