Python3:python+mysql数据库连接及操作

本文使用Python3.7和PyMySQL0.9.3,介绍如何连接MySQL数据库并进行查询、增删改等操作。提供了一个基础的数据库连接类,适用于多数据库场景,详细代码和解释见正文。

python+mysql数据库连接及操作

内容说明

本例子使用的python3.7,PyMySQL0.9.3版本,主要是讲解python如何连接mysql数据库,并对数据库进行查询,增删改等操作,本例中封装了一个基础的mysql数据库连接类,主要是用于当项目中存在多个数据库时,可通过传入链接参数,指定调用对应数据库并进行操作。

实例内容

实现方式及代码内容请参见下诉内容,直接上码:

# -*- coding: utf-8 -*-
import pymysql.cursors

class conn:

    def do_one(self, conn, sql):
        """
        执行单条数据的变更操作(增、删、改)
        :param conn: 传入想要连接的数据库参数,传入格式为:{'host': '127.0.0.1', 'port': 3060, 'user': 'test', 'password': 'test', 'db': 'TEST',
                       'charset': 'utf8mb4'}
        :param sql: 传入需要执行的sql
        :return: 返回执行结果,包含调用状态status(True/False),响应消息msg,返回结果示例:{"status": False, "result": (), "msg": "传入执行sql为空,请确认!!!"}
        """

        # 定义一个默认返回消息
        res = {"status": True, "result": (), "msg": ""}
        # 判断传入执行sql的参数是否为空如果为空则返回错误消息
        if not len(sql) > 0 and sql == "":
            res = {"status": False, "result": (), "msg": "传入执行sql为空,请确认!!!"}
            return res

        # 获取数据库连接,并建立一个游标,然后执行并提交sql
        try:
            connection = pymysql.connect(**conn)
            cursor = connection.cursor()
            result = cursor.execute(sql)
            connection.commit()
        # 异常处理,若sql在执行过程中存在异常则抛出对应异常消息,记录并将执行sql通过响应结果返回给调用方
        except Exception as err:
            cursor.close()
            connection.close()
            res["status"] = False
            res["msg"] = [sql, err]
            return res
        # 关闭数据库连接
        cursor.close()
        connection.close()
        res["result"] = result
        return res


    def select(self, conn, sql):
        """
        执行数据库查询操作
        :param 传入想要连接的数据库参数,传入格式为:{'host': '127.0.0.1', 'port': 3060, 'user': 'test', 'password': 'test', 'db': 'TEST',
                       'charset': 'utf8mb4'}
        :param sql:传入查询sql
        :return: 返回执行结果,包含调用状态status(True/False),响应消息msg,返回结果示例:{"status": False, "result": (), "msg": "传入执行sql为空,请确认!!!"}
        """
        
        res = {"status": True, "result": (), "msg": ""}
        try:
            connection = pymysql.connect(**conn)
            cursor = connection.cursor()
            cursor.execute(sql)
            result = cursor.fetchall()
        except Exception as err:
            # print(err)
            res['msg'] = [sql, err]
            res['status'] = False
            cursor.close()
            connection.close()
            return res

        cursor.close()
        connection.close()
        res['result'] = result
        return res

本博客主要是用来记录学习过程中的一些细节问题,如果能够解决大家的问题那是最好不过的了,写的不是很好,敬请指正和讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值