MySQL数据库与python的交互

当然,MySQL是什么都不知道的老铁自行百度为妙,哈哈啊!

简而言之,MySQL是一种关系型数据库管理系统,不同的数据内容放到不同的数据表中,不同的表之间可以有联系,对应关系等,也可以没有联系。

对数据的操作无非CURD(增删改查),一般在shell命令行中操作难免乏味,你知道吗?还可以在pycharm界面呢?把SQL语句封装成类,使用时直接调用,用python的面向对象的思想解决问题,那不是一般的舒服。

看代码!!!

先把各种语句封装成类:

#导入类库
import pymysql
#创建类,对操作数据库的方法(sql语句)进行封装
class MySql():

    def __init__(self,host,user,passwd,dbName):
        """
        初始化必要的参数:
        :param host: 主机
        :param user: 用户
        :param passwd: 用户密码
        :param dbName: 数据库名
        """
        self.host = host
        self.user = user
        self.passwd = passwd
        self.dbName = dbName

    def connet(self):
        """
        封装函数,连接数据库
        self.cursor:创建游标对象
        :return:
        """
        self.db = pymysql.connect(self.host,self.user,self.passwd,self.dbName)
        self.cursor = self.db.cursor()

    def close(self):
        """
        关闭游标,关闭数据库
        :return:
        """
        self.cursor.close()
        self.db.close()

    def get_one(self,sql):
        """
        查询数据库中的内容,返回一个对象
        :param sql:
        :return:
        """
        res = None
        try:
            self.connet()
            self.cursor.execute(sql)
            res = self.cursor.fetchone()
            self.close()
        except:
            print('查询失败')
        return res

    def get_all(self,sql):
        """
        查询数据库内容,返回所有的数据
        :param sql:
        :return:
        """
        res=()
        try:
            self.connet()
            self.cursor.execute(sql)
            res = self.cursor.fetchall()
            self.close()
        except:
            print('查询失败')
        return res

    def insert(self,sql):
        """
        执行插入内容的方法
        :param sql:
        :return: 调用_edit()方法,对SQL语句的封装
        """
        return self._edit(sql)

    #更新
    def update(self,sql):
        return self._edit(sql)

    #删除
    def delete(self,sql):
        return self._edit(sql)

    #对执行的SQL语句进行封装
    def _edit(self,sql):
        count = 0
        try:
            self.connet()
            count = self.cursor.execute(sql)
            self.db.commit()
            self.close()
        except:
            print('事物提交失败')
            self.db.rollback()
        return count

再来看看测试代码:

#导入创建好的类库
from MySQL_fengzhuang import MySql

#创建对象,调用类
s = MySql('localhost','root','caicai','cai')

#调用对象的方法,执行相关的SQL命令
re = s.insert('insert into fruits values(0,"王语嫣",10000)')

res = s.get_all('select * from fruits where money>200')

for row in res:
    print(row)

注意:

1.在别处使用时,一定要从文件中导入我们所创建的类;

2.当对数据库进行操作时,比如查询,数据库,数据表要存在(本地连接localhost,连接别人的要输入别人的IP);

猜你喜欢

转载自blog.csdn.net/cai_cai_cai_1992/article/details/82942760