【发布时间】:2020-02-27 17:15:27
【问题描述】:
我正在使用flask SQLAlchemy,并且我有以下代码通过来自MySQL数据库的原始SQL查询从数据库中获取用户:
connection = engine.raw_connection()
cursor = connection.cursor()
cursor.execute("SELECT * from User where id=0")
results = cursor.fetchall()
results 变量是一个元组,我希望它是 dict() 类型。有没有办法做到这一点?
当我使用 pymysql 建立数据库连接时,我能够做到
cursor = connection.cursor(pymysql.cursors.DictCursor)
SQLAlchemy 中有类似的东西吗?
注意:我想要进行此更改的原因是为了摆脱在我的代码中使用 pymysql,而只使用 SQLAlcehmy 功能,即我不想在我的代码中的任何地方都有 ´´´import pymysql´´´。
【问题讨论】:
-
不,我已尝试应用此解决方案,但它不起作用,正如我在问题中提到的那样,我正在使用 engine.raw_connection,它返回未命名元组的元组,同样适用于您的评论 IIja 我收到此错误消息 AttributeError : 'tuple' 对象没有属性 '_asdict'
-
我认为我的问题的旧标题更好地描述了我的需求
-
@malsioufi 对,完全错过了您使用原始连接的事实,这使我之前的评论无效。我也同意旧标题更合适。但是一个很好的问题是:为什么要使用原始连接?
-
我正在做的是将我的应用程序从使用 pymysql 更新为使用 SQLAlchemy。在代码中的许多地方都使用了
cursor = conn.cursor(pymysql.cursors.DictCursor) cursor.execute(some_statment),所以我认为是否有办法暂时保持这种行为,只需将连接对象(conn)从pymysql对象更新为SQLAlchemy对象。也就是说,我想保留这部分python cursor = connection.cursor() cursor.execute("SELECT * from User where id=0") results = cursor.fetchall()
标签: python mysql sqlalchemy flask-sqlalchemy