I've written a Python Flask app, and initially used MySQLdb to access MySQL. Later I've switched to flaskext.mysql for the same purposes, but now when I use this module I cannot see how to get a dictionary structured cursor.
When I using the MySQLdb module I was using the following line to open a dictionary based cursor -
import MySQLdb as mdb
con = mdb.connect('localhost','root','root','transport')
with con:
cur = con.cursor(mdb.cursors.DictCursor)
Now I'm trying to do the same with flaskext.mysql, my currect code looks like this -
from flaskext.mysql import MySQL
cur = mysql.get_db().cursor()
What should I feed the cursor object in order to get the same type of cursor?
解决方案
mysql.get_db() would result into your "connection" object, you can do:
import MySQLdb as mdb
cur = mysql.get_db().cursor(mdb.cursors.DictCursor)
Or, you can also set the default cursorclass when initializing the extension:
mysql = MySQL(cursorclass=mdb.cursors.DictCursor)