python对MySQL进行曾删改查

      通过 python 对MySQL数据库进行,查询、修改、插入、删除数据。

我们可以把这些方法封装成一个工具类,这样需要用到对数据库增删改查,就直接调用工具类里面方法进行操作。

 

   这里用到pymysql 库;python利用这个库对MySQL做操作。前提是安装该库:pip install pymysql

 

#封装成为一个工具类
import pymysql

class Dd_mysql():#定义一个连接数据库的类
    def __init__(self,host,user,password,db,port):#在构造函数里面传入连接数据库需要的参数
        ''' 连接数据库所需要的参数 '''
        self.host = host
        self.user = user
        self.password = password
        self.db = db
        self.port = port


    def connect_db(self):
        #创建一个数据库连接
        try:
            db=pymysql.connect(host=self.host,user=self.user,password=self.password,db=self.db,port=self.port)
            return db
        except Exception as e :
            print('连接失败',e)

    def select_one(self,sql):
        #封装查询第一行的方法
        try:
            db=self.connect_db()  #拿到一个连接数据库的对象
            cursor=db.cursor()    #创建一个游标对象(作用:执行sql语句,获取返回值)
            cursor.execute(sql)#通过游标执行sql语句;通过游标对象调用execute方法执行SQL语句、执行后的结果被保存到了cursor对象中
            db.commit()      # 再往数据库提交数据或者执行的请求
            one=cursor.fetchone()  #通过游标返回表中的一行数据;fetchall方法会返回所有数据
            return one
        except Exception as e:
            print(e)
            db.rollback()  #数据库的回滚、把数据库代码的操作返回到上一次操作的状态

    def delete_one(self,del_sql,sel_sql):
        #封装一个删除表中特定数据并且返回表中剩余数据的工具方法
        try:
            db=self.connect_db()
            cursor=db.cursor()
            cursor.execute(del_sql)     #删除
            cursor.execute(sel_sql)       #查询删除后表中剩余的数据
            db.commit()
            all=cursor.fetchall()#查询多条语句
            return all
        except Exception as e:
            print(e)
            db.rollback()

    #插入一条数据到数据库对应的表
    def insert_noe(self,ins_sql):
        try:
            db=self.connect_db()
            cursor=db.cursor()
            cursor.execute(ins_sql)
            # cursor.execute(sel_sql)

            db.commit()
            all=cursor.fetchone()
            # cursor.close()
            return all
        except Exception as e:
            print(e)
            db.rollback()

    def select_all(self,sql):
        #封装查询所有数据的方法
        try:
            db=self.connect_db()
            cursor=db.cursor()
            cursor.execute(sql)
            db.commit()
            all=cursor.fetchall()
            return all
        except Exception as e:
            print(e)
            db.rollback()

if __name__ == '__main__':
    #实例化Dd_mysql类并传入参数
    db_mysql=Dd_mysql('192.168.31.103','root','123456','finance',3306)

    #通过实例对象调用select_one 查询方法
    # restul=db_mysql.select_one('select * from bei5;')

    #调用删除方法,删除后在调用查询语句,查询删除后的结果
    # restul=db_mysql.delete_one("delete from beifen where id=2;","select * from beifen;")

    #调用insert_noe 方法往表里插入数据
    db_mysql.insert_noe("insert into score3(s_id,score)values(2,334);")
    restul=db_mysql.insert_noe("select * from score3;")
    print(restul)

 

 

posted @ 2021-01-31 19:39  测试-dali  阅读(125)  评论(0编辑  收藏  举报