MySQLdb

Posted 思辨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQLdb相关的知识,希望对你有一定的参考价值。

一.

Python-MySQLdb中的DictCursor使用方法简介

DictCursor的这个功能是继承于CursorDictRowsMixIn,这个MixIn提供了3个额外的方法: fetchoneDict、fetchmanyDict、fetchallDict。
 
     在默认情况下cursor方法返回的是BaseCursor类型对象,BaseCursor类型对象在执行查询后每条记录的结果以列表(list)表示。如果要返回字典(dict)表示的记录,就要设置cursorclass参数为mysqldb.cursors.DictCursor类。
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
 
这个参数也可在调用connect方法建立连接时设置,如下:
>>> conn = MySQLdb.connect(host=‘192.168.1.103‘, port=3306, user=‘testacc‘, pass
wd=‘test1234‘, db=‘1dcq‘, cursorclass=MySQLdb.cursors.DictCursor)
>>>conn.close()
 
例子:
>>> import MySQLdb
>>> conn = MySQLdb.connect(host=‘192.168.1.103‘, port=3306, user=‘testacc‘, passwd=‘test1234‘, db=‘1dcq‘)
>>> cursor = conn.cursor()
>>> cursor.execute(‘SELECT * FROM pagesobject LIMIT 0, 1‘)
1L
 
>>> cursor.fetchone()
(1L, 0L, ‘???‘, ‘true‘, None, 0)
>>> cursor.close()
 
对比实验如下:
>>> cursor = conn.cursor(MySQLdb.cursors.DictCursor)
>>> cursor.execute(‘SELECT * FROM pagesobject LIMIT 0, 1‘)
1L
>>> cursor.fetchone() # 等价fetchoneDict()
{‘PageDesc‘: None, ‘P_Id‘: 0L, ‘isParent‘: 0, ‘html_open‘: ‘true‘, ‘PageName‘: ‘???‘, ‘Id‘: 1L}
>>> cursor.close()
>>>conn.close()

以上是关于MySQLdb的主要内容,如果未能解决你的问题,请参考以下文章

python mysqldb 教程

无法在 App Engine 上捕获 MySQLdb.OperationalError

MySQLdb安装指南

win10 64位 python3.6 django1.11 MysqlDB No module named 'MySQLdb' 安装MysqlDB报错 Microsoft Visua

从 JAVA MySQLdb 导入调用 Python 脚本

Django 在Python3.5 下报 没有模块MySQLdb