安装MySQL-python
要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。
下载地址:https://pypi.python.org/pypi/MySQL-python/
下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:
安装MySQL-python驱动
下载地址:http://dev.mysql.com/downloads/connector/python/
python setup.py install
通常安装标准的python模块,只需要在模块的根目录下运行:
python setup.py build
python setup.py install
mysql使用
from mysql import connector
-
数据库连接句柄
def getConnection():
try:
conn=connector.connect(user = 'xxx', password = 'xxx', host = 'xxx')
cursor=conn.cursor()
return conn,cursor
except Exception as e:
traceback.print_exc()
-
查询数据表并返回数据行(元组类型(a,))
def getRow(cursor,sql):
try:
cursor.execute(sql)
row=cursor.fetchone()
#if row == None:
#pass
#当数据库中没有数据时,返回 NoneType类型,这时如果print或者日志打印就会抛异常
return row
except Exception as e:
traceback.print_exc()
eg:
sql = "select a,b,c from talbe limit 1"
调用getRow返回(value1,value2,value3)
-
查询数据表并返回数据行,列表类型,列表中的数据类型是元组类型
def getRows(cursor,sql):
try:
#cursor=conn.cursor()
cursor.execute(sql)
rows=cursor.fetchall()
return rows
except Exception as e:
traceback.print_exc()
eg:
sql = "select a,b,c from talbe limit 2"
调用getRows返回[(value1,value2,value3),(value1,value2,value3)]
-
对数据进行增删改操作
def operateRow(conn,cursor,sql):
try:
logger.info( 'operateRow sql:%s'%sql)
#cursor=conn.cursor()
cursor.execute(sql)
logger.info("operateRow success")
conn.commit()
except Exception as e:
conn.rollback()
traceback.print_exc()
-
断开数据库链接
def closeConn(conn,cursor):
cursor.close()
conn.close()
查询数据为空时的判断
eg:
if not None:
not None 为True
>>> a=(None,)
>>> if a:
print "aaa"
aaa ----打印的结果
>>> if a[0]:
print "aaa"
a[0]为None,if None为false,所以打印结果为空
>>>
注:当数据查询出来的值为空(Null)时,python中返回的结果为(None,),默认取数据库中返回的值需要进行转换 str(db_result[0])(假设查询一条数据返回的结果为db_result)