Python Flask:将数据库行作为字典获取

Python Flask:将数据库行作为字典获取,python,flask,Python,Flask,我正在使用Flask MySQLDb构建一个应用程序,并想知道如何将数据库行作为字典返回(比如PHP的FETCH_ASSOC)。cursor类的默认fetchall()方法返回一个元组,在底层库的 到目前为止,我一直在执行以下格式的代码,但获得以列名作为键的dict将非常有帮助: g.cursor.execute('SELECT email, password FROM users WHERE email = %s', [request.form['email']]) row =

我正在使用Flask MySQLDb构建一个应用程序,并想知道如何将数据库行作为字典返回(比如PHP的FETCH_ASSOC)。cursor类的默认
fetchall()
方法返回一个元组,在底层库的

到目前为止,我一直在执行以下格式的代码,但获得以列名作为键的dict将非常有帮助:

g.cursor.execute('SELECT email, password FROM users WHERE email = %s', [request.form['email']])
        row = g.cursor.fetchall()

您可以在connect方法中使用
cursorclass
参数,并指定创建光标的时间

请看这里。简言之:

import MySQLdb
from MySQLdb.cursors import DictCursor

conn = MySQLdb.connect(cursorclass=DictCursor)
g.cursor = conn.cursor()
只需添加行

app.config['MYSQL_CURSORCLASS'] = 'DictCursor'

查看SQLAlchemy:)@Trent我知道!SQLAlchemy是最好的,但目前我的学习曲线很浅,因为我的应用程序非常小。这里的问题是,我的代码在flask mysqldb模块中使用MySQL类,而示例直接使用mysqldb。有区别吗?是否存在兼容性问题(我使用的是3.4)?让我恼火的是,我在网络上的任何地方都找不到这个该死的类的源代码(我仍然很困惑(糟糕的文档、极端的碎片化等等)但至少这是预期的效果。非常感谢!似乎我必须直接使用
mysqlclient
,因为这是
flask mysqldb
的基础。似乎你可以在flask配置中设置
MYSQL\u CURSORCLASS
,看得很好,但它可以接受什么可能的值?可能是
DictCursor
?不确定,哈文“我没有用过我想要的东西。同样,我想要的东西也是有意义的。这应该在文档页面中。”。