使用python连接数据库

本文介绍了如何使用Python连接数据库,重点在于封装数据库连接脚本。当遇到链接超时导致的断开连接问题时,通过self.db.ping(reconnect=True)实现自动重连。详细步骤和参考资料来源于个人实践和网络资源。

python连接数据库的图示流程在这里插入图片描述
在这里插入图片描述
自己封装的链接数据库的脚本

import pymysql
import traceback

#对python操作数据库进行封
class sql:
    #创建构造函数
    def __init__(self,host,port,username,passwd,databse):
        self.host = host
        self.port = port
        self.username = username
        self.passwd = passwd
        self.database = databse
        self.db = pymysql.connect(host=self.host,port=self.port,user=self.username,passwd=self.passwd,db=self.database)
    #关闭游标
    def cursor_close(self):
        self.cursor.close()
        # 关闭链接

    def db_close(self):
        self.db.close()

    def execute_Insert(self,sql,*value):
        self.cursor = self.db.cursor()
        # 异常处理
        try:
            # 执行SQL语句
            self.db.ping(reconnect=True)
            self.cursor.execute(sql, *value)
            # 提交事务到数据库执行
            self.db.commit()  # 事务是访问和更新数据库的一个程序执行单元
        except:
            traceback.print_exc()
            # 如果发生错误则执行回滚操作
            self.db.rollback()
        finally:
            self.cursor_close()
        return 0

    def execute_Select(self,sql,*value):
        self.cursor = self.db.cursor()
        # 异常处理
        try:
            # 执行SQL语句
            self.db.ping(reconnect=True)
            self.cursor.execute(sql,*value)
            res = self.cursor.fetchall()
            # 提交事务到数据库执行
            #cursor.commit()  # 事务是访问和更新数据库的一个程序执行单元
        except:
            print("execute_Select:state_Error!!!")
            # 如果发生错误则执行回滚操作
            self.db.rollback()
        finally:
            self.cursor_close()
        return res

以上如果是traceback主要是输出错误提示,self.db.ping(reconnect=True)主要是链接时间过长断了重连。
参考资料:https://blog.csdn.net/lluozh2015/article/details/78411884?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值