美文网首页
mysql+python

mysql+python

作者: simplehu | 来源:发表于2017-09-13 10:28 被阅读0次

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

          本文链接:https://www.haomeiwen.com/subject/pgrksxtx.html