mysql+python

2017-09-13  本文已影响0人  simplehu

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

上一篇 下一篇

猜你喜欢

热点阅读