python操作MySQL数据库

  • 接口自动化过程中,我们经常需要新增数据。例如:注册账户时,同一账号只能注册一次,再次注册会失败。此时我们,就需要用到后置处理器,清除数据;
  • 有的我们可以调用删除的接口操作,但是有的需要连接数据库删除(推荐,由于不确定数据库是否已存在相同数据,所以我们可以查询然后判断是直接注册还是删除后再注册)
  • python中操作MySQL数据库需要使用到第三方模块:pymysql
    • 1、环境搭建:pip install pymysql
    • 2、基本操作
import pymysql

# 数据库连接
db = pymysql.connect(
    host = "47.106.165.195",
    user = "root",
    password = "123456",
    port = 3306,
    database = "JD_50",
)
#创建游标对象
cursor = db.cursor()

#SQL语句
sql = 'select * from Student'
sql1 = "insert into Student values ('10','xwl','1990-12-21','男')"

#执行sql
cursor.execute(sql1)

#提交,增删改等操作需要执行
db.commit()

#获取数据
# one = cursor.fetchone()    #获取1条数据
# many = cursor.fetchmany()   #获取指定条数数据,不填默认为1
# all = cursor.fetchall()    #获取全部数据
# print(one)
# print(all)

#关闭游标
cursor.close()
#关闭数据库
db.close()
  • 3、上面的操作比较散,我们在实际使用过程中,一般在一个单独的py文件封装数据库操作,使用时直接调用
import pymysql

dbinfo = {
    "host":"47.106.165.195",
    "user":"root",
    "password":"123456",
    "port":3306
}

class DB:
    def __init__(self,dbinfo):
        self.db = pymysql.connect(cursorclass = pymysql.cursors.DictCursor,
                                  **dbinfo)
        self.cursor = self.db.cursor()

    def select(self,sql):
        self.cursor.execute(sql)
        result = self.cursor.fetchall()
        return result

    def execute(self,sql):
        try:
            self.cursor.execute(sql)
            self.db.commit()
        except:
            self.db.rollback()

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

if __name__ == '__main__':
    db = DB(dbinfo)
    #查询
    sql = "SELECT * from test.class"
    result = db.select(sql)
    print(result)

    #修改
    sql2 = "INSERT into test.class VALUES (5,'五年一班')"
    db.execute(sql2)
    sql = "SELECT * from test.class"
    result = db.select(sql)
    print(result)
posted @ 2022-08-30 22:27  Tony_xiao  阅读(524)  评论(0编辑  收藏  举报