mysql+python

安装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)

你可能感兴趣的:(mysql+python)