python连接MySQL数据库

python连接MySQL数据库

进行连接之前我们可以先将连接类进行封装,方便后续的使用。

import pymysql

class connect_db():
    '''
    连接数据库
        host_ = 数据库地址
        name_ = 用户名
        pwd_ = 密码
        db_ = 数据库名
        如果要连接的数据库有多个的话可以将地址、用户名、密码写成参数进行传值进来就可以
    '''
    def connect_(self, db_):
        self.db = pymysql.connect(host_, name_, pwd_, db_)  # 数据库连接
        self.cursor = self.db.cursor()  # 开启游标
        self.cursor.execute('SET NAMES UTF8')  # 编码格式

    # 输入SQL语句
    def input_sql(self, sql_):
        self.cursor.execute(sql_)

    # 输出数据
    def output(self, state, amount):#amount = 要显示的数量
        if state == 'one':
            data = self.cursor.fetchone()  # 读取sql语句运行的单条数据
        elif state == 'all':
            data = self.cursor.fetchall()  # 读取sql语句运行的所有数据
        elif state == 'chmany':
            amount = int(amount)
            data = self.cursor.fetchmany(amount)  # 读取sql语句运行的多条数据
        return data

    # 事务
    def affair_(self, select):
        if select == '提交':
            self.db.commit()
        elif select == '回滚':
            self.db.rollback()

    # 关闭连接,执行完数据库的操作后最后进行关闭
    def close_mysql(self):
        self.cursor.close()  # 关闭游标
        self.db.close()  # 断开数据库的连接

封装完成后我们就可以进行调用了
以下列举几个简单的示例:

import connect_mysql # 连接类的类名

# 连接数据库
db = connect_mysql.connect_db()  # 实例化连接数据库类
db.connect_("db_name")  # 连接数据库,输入数据库名

# 读取sql语句运行的单条数据,如果存在多条数据,只读取第一条
db.input_sql("select * from 表名")  # SQL语句
data = db.output("one", "")  # 返回一条数据
print(data)

# 读取sql语句运行的所有数据
db.input_sql("select * from 表名")  # SQL语句
data = db.output("all", "")  # 返回所有数据
for i in data:  # 循环遍历数据
    print(i[1])  # 【哪列字段】 下标从0开始,删除[1]可获取所有字段

# 读取sql语句运行的多条数据
db.input_sql("select * from 表名")  # SQL语句
data = db.output("chmany", "2")  # 返回2条数据
print(data)


# 事务
try:
    db.input_sql("SELECT * from 表名 where 条件")  # SQL语句  
except Exception as e:
    db.affair_("回滚")  # 事务回滚
    print('事务处理失败', e)
else:
    db.affair_("提交")  # 事务提交
    print('事务处理成功')


# 运行完SQL语句后最好对数据库进行一个关闭操作
db.close_mysql()  # 关闭mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值