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

Posted KurtKuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3:python+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

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

以上是关于Python3:python+mysql数据库连接及操作的主要内容,如果未能解决你的问题,请参考以下文章

Python3 MySQL 数据库连接 -PyMySQL

第七篇:Python3连接MySQL

Python3.x:使用PyMysql连接Mysql数据库

python3连接MySQL数据库实例

Python3 MySQL 数据库连接

Python3连接Mysql