python调用sql插入none_Python封装通俗易懂的数据库增、删、改、查方法

本文介绍了如何使用Python连接MySQL数据库并封装常见的增删改查操作。首先确保安装了MySQL和pymysql库,然后创建DB类,封装连接、关闭数据库及游标的方法,以及查询、修改、删除、插入数据的函数。这种方法适用于灵活的SQL语句,方便接口自动化中的数据库操作。
摘要由CSDN通过智能技术生成

c24afb18a50fb3522fd79a9a1396be39.png

来源:https://urlify.cn/nUJviq


既然我们都已经会在cmd中操作数据库,那么为什么还要用python连接mysql呢?这里就涉及到接口自动化,因为我们做接口自动化避免不了需要连接数据库做一些数据库的查询,这些操作都是需要我们来连接数据库的

操作前提:

  • 电脑上已装好mysql服务,并配置好相应环境

  • 已有python环境,并装好相应的编译器(如pycharm)

  • 打开cmd ,输入:pip install pymysql ,安装pymysql库

这些已经准备好后,查看是否存在数据库

打开cmd,连接mysql,查看自己有没有数据库:
show databases;
没有就创建一个名为start的数据库:
create database start;1ce48749d8b3e6fe020e5bc8817c7e04.png

打开pycharm编译器,开始封装数据库

先创建一个DB类,并写好初始化方法

class DB():# cursorclass将返回结果呈字典显示 ,如果传了就应用,不传就为None    def __init__(self,host,user,password,database,cursorclass = None):        self.host = host  #  ip地址,本机就传localhost就可以        self.user = user  #  账户名,如果你没有更改过,那就是root        self.password = password  # 数据库密码        self.databases = database  # 你具体要连接的哪一个数据库        self.cursorclass = cursorclass  # 返回结果呈字典形式  {}

在DB类下创建连接数据库的方法

    def connect(self):  # 创建连接数据库方法        import pymysql        # 创建数据库连接        self.db = pymysql.connect(host = self.host,user = self.user,password =         self.password,database = self.databases,cursorclass = self.cursorclass)        #创建游标        self.cursor = self.db.cursor()

这里游标的创建是为了执行sql语句,如果sql语句执行失败,同样也是需要游标回滚,否则后续的执行都会超出我们的预期范围

封装关闭数据库及游标方法

    def close(self):  #关闭方法        self.cursor.close()  # 关闭游标        self.db.close()  # 关闭数据库

封装查询方法

    def get_one(self,sql):  # 返回一条符合条件的查询结果        result = 0        try:            self.connect()            self.cursor.execute(sql)            result = self.cursor.fetchone()            self.close()        except Exception as e:            print('select error',e)        return result    def get_all(self,sql):  # 返回全部符合条件的查询结果        result = 0        try:            self.connect()            self.cursor.execute(sql)            result = self.cursor.fetchall()            self.close()        except Exception as e:            print("select error",e)        return result

创建主函数,插入语句、删除语句、更新语句都是通过它来执行

 def __edit(self,sql):  # 创建主函数        result = 1  #设置结果集,用于调用的时候做判断        try:  #这里是使用的try语句来尝试进行操作            self.connect()            self.cursor.execute(sql)            self.db.commit()  # 注意的是,如果是对数据库做了修改、删除、增加的操作,那么一定要commit提交,查询和创建表不需要提交            self.close()        except Exception as e:  # 如果操作失败,报出操作异常,且游标进行回滚            print('error :',e)            result = 0            self.db.rollback()        return result

封装修改方法、删除方法、插入数据方法

 def insert(self,sql):        # 插入语句  ,以下三个都是一样的,只是调用的时候,我们看起来更加清晰而已        return self.__edit(sql)  # 通过主函数的处理,来去执行sql语句    def delete(self,sql):  #  删除语句        return self.__edit(sql)    def update(self,sql):  # 修改语句        return self.__edit(sql)

实际上都是一样的,这里命名不一样是为了我们在后续执行或者回看代码的时候,更快速的知道它是属于哪一种sql语句

结合起来,展示下完整的封装数据库代码,喜欢的小伙伴可以直接copy哦~~~

class DB():    def __init__(self,host,user,password,database,cursorclass = None):# cursorclass将返回结果呈字典显示 ,如果传了就应用,不传就为None        self.host = host  #  ip地址,本机就传localhost就可以        self.user = user  #  账户名,如果你没有更改过,那就是root        self.password = password  # 数据库密码        self.databases = database  # 你具体要连接的哪一个数据库        self.cursorclass = cursorclass  # 返回结果呈字典形式  {}            def connect(self):  # 创建连接数据库方法        import pymysql        # 创建数据库连接        self.db = pymysql.connect(host = self.host,user = self.user,password =        self.password,database = self.databases,cursorclass = self.cursorclass)        #创建游标        self.cursor = self.db.cursor()            def get_one(self,sql):  # 返回一条符合条件的查询结果        result = 0        try:            self.connect()            self.cursor.execute(sql)            result = self.cursor.fetchone()            self.close()        except Exception as e:            print('select error',e)        return result            def get_all(self,sql):  # 返回全部符合条件的查询结果        result = 0        try:            self.connect()            self.cursor.execute(sql)            result = self.cursor.fetchall()            self.close()        except Exception as e:            print("select error",e)        return result            def __edit(self,sql):  # 创建主函数        result = 1  #设置结果集,用于调用的时候做判断        try:  #这里是使用的try语句来尝试进行操作            self.connect()            self.cursor.execute(sql)            self.db.commit()  # 注意的是,如果是对数据库做了修改、删除、增加的操作,那么一定要commit提交,查询和创建表不需要提交            self.close()        except Exception as e:  # 如果操作失败,报出操作异常,且游标进行回滚            print('error :',e)            result = 0            self.db.rollback()        return result    def insert(self,sql):        # 插入语句  ,以下三个都是一样的,只是调用的时候,我们看起来更加清晰而已        return self.__edit(sql)  # 通过主函数的处理,来去执行sql语句    def delete(self,sql):  #  删除语句        return self.__edit(sql)    def update(self,sql):  # 修改语句        return self.__edit(sql)    def close(self):  #关闭方法        self.cursor.close()  # 关闭游标        self.db.close()  # 关闭数据库

接下来演示下怎么调用,这个就比较简单了

from 数据库_dom1 import DBimport pymysql#实例化数据库对象sorsor = DB(host = 'localhost',user = 'root',password = '12345678',database='start',cursorclass=pymysql.cursors.DictCursor)# 测试创建表sql = 'create table student(id int auto_increment primary key,name varchar(50))'res = sor.update(sql)if res == 1: # 如果结果集返回1,实际上我们在封装的时候它就是1,那么执行下面的操作    sql = 'show tables;'    re = sor.get_all(sql)    print(re)# 如果返回为0,那么打印下失败了else:    print('数据库操作失败')# 插入语句sql = 'insert into student(name) values("白嘉诚")'res = sor.insert(sql)if res ==1:    sql = 'select * from student'    re = sor.get_all(sql)    print(re)else:    print("插入失败")# 修改语句sql = 'update student set name="马旭萌"  where name="白嘉诚"'res = sor.update(sql)if res ==1:    sql = 'select * from student'    re = sor.get_all(sql)    print(re)else:    print('修改失败')#删除语句sql = 'delete from student where name ="马旭萌"'res = sor.delete(sql)if res ==1:    sql = 'select * from student'    re = sor.get_all(sql)    print(re)else:    print('删除失败')

上面的删、改、插入方法调用起来都是一样的,这种的是比较容易理解的。

这种封装数据库的方法适用于较灵活sql语句使用,比如多表联查等,没有对sql语句进行详细的封装,但是用起来肯定要比正常引用敏捷一些。

如果本文对你有帮助,点个“在看”呗!


-END-

29e594890980e363915afc292753586b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值