【pymysql封装】

import pymysql
import threading
from pymysql.cursors import DictCursor
from settings import HOST, PORT, USER, PASSWORD, DATABASE
from nxlog import log_handler
logger = log_handler('pymysql')


def pymysql_list_select(sql):
    """mysql读操作"""
    connect = pymysql.Connect(host=HOST,
                              port=PORT,
                              user=USER,
                              passwd=PASSWORD,
                              db=DATABASE,
                              charset='utf8')
    connect.ping(reconnect=True)
    cursor = connect.cursor()
    lock = threading.Lock()
    lock.acquire()
    cursor.execute(sql)
    lock.release()
    res = cursor.fetchall()
    logger.info('pymysql_list_select:{0}'.format(res))
    logger.info(res)
    connect.commit()
    cursor.close()
    return res


def pymysql_dict_select(sql):
    """mysql读操作"""
    connect = pymysql.Connect(host=HOST,
                              port=PORT,
                              user=USER,
                              passwd=PASSWORD,
                              db=DATABASE,
                              charset='utf8')
    connect.ping(reconnect=True)
    cursor = connect.cursor(DictCursor)
    lock = threading.Lock()
    lock.acquire()
    cursor.execute(sql)
    lock.release()
    res = cursor.fetchall()
    logger.info('pymysql_dict_select:{0}'.format(res))
    logger.info(res)
    connect.commit()
    cursor.close()
    return res


def pymysql_write(sql):
    """mysql写操作"""
    try:
        connect = pymysql.Connect(host=HOST,
                                  port=PORT,
                                  user=USER,
                                  passwd=PASSWORD,
                                  db=DATABASE,
                                  charset='utf8')
        connect.ping(reconnect=True)
        cursor = connect.cursor()
        lock = threading.Lock()
        lock.acquire()
        res = cursor.execute(sql)
        logger.info("pymysql_write:{0}".format(res))
        logger.info(res)
        lock.release()
        connect.commit()
    except Exception as e:
        logger.info("pymysql写错误:{0}".format(e))

 

posted @ 2021-02-05 10:42  GokuBlog  阅读(109)  评论(0)    收藏  举报