# -*- coding: utf-8 -*- import logging import pymysql from config.test_config import Settings def get_connection(): return pymysql.connect( host=Settings.MYSQL['host'], port=Settings.MYSQL['port'], user=Settings.MYSQL['user'], password=Settings.MYSQL['password'], database=Settings.MYSQL['database'], charset='utf8mb4', local_infile=1 ) def fetch_one(sql): conn = get_connection() cursor = conn.cursor() cursor.execute(sql) data = cursor.fetchone() connect_close(cursor, conn) return data def fetch_all(sql, args): conn = get_connection() cursor = conn.cursor() cursor.execute(sql, args) data_list = cursor.fetchall() connect_close(cursor, conn) return data_list def insert(sql, args): conn = get_connection() cursor = conn.cursor() row = cursor.execute(sql, args) conn.commit() return row def insert_batch(sql, args): conn = get_connection() cursor = conn.cursor() row = cursor.executemany(sql, args) conn.commit() connect_close(cursor, conn) return row def update(sql, args): conn = get_connection() cursor = conn.cursor() row = cursor.execute(sql, args) conn.commit() connect_close(cursor, conn) return row # 批量更新 def update_batch(sql, args): conn = get_connection() cursor = conn.cursor() row = None try: row = cursor.executemany(sql, args) conn.commit() except Exception as e: logging.error(e) conn.rollback() finally: connect_close(cursor, conn) return row def connect_close(cursor, conn): cursor.close() conn.close()