python与MySQL的交互

实现MySQL与python的交互有以下的步骤

1:在MySQL下查看
  • 先登录数据库管理系统,确保此数据库名存在
    (没有则创建)。创建后use+数据库名进入数据库
zyf@zrong:~$ mysql -u root -p
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test
Database changed
mysql> 
2: 进入python,先进行简单的操作

导入第三方模块pymysql
a 连接数据库
b 获取游标:用来执行sql语句
c 进行sql语句的一些操作(增删改查等)

import  pymysql

#1:链接数据库
#参数:mysql服务器地址,用户名,密码,数据库名
#注意:先登录数据库,在数据库中必须存在一个名为testdb的数据库
db = pymysql.connect("localhost","用户名","密码","test");
#2.获取一个游标
#游标的作用:执行sql中的语句,通过游标完成的
cur = db.cursor();
#3.其他操作
"""
#1.
#查看当前数据库的版本信息
cur.execute("select version()")
#获取游标中的一条信息
data = cur.fetchone()/fetchall()
print(data)
"""
#2.创建表
cur.execute("DROP TABLE IF EXISTS student")
sql = """create table student(
    id int primary key,
    name varchar(20) not null,
    score double default 0
    );"""
cur.execute(sql)
为了方便,将这些操作封装成一个工具类

建一个工具py文件

import pymysql
class DBwork(object):
    #构造函数
    def __init__(self,host,user,psd,dbname):
        self.host=host
        self.user=user
        self.psd=psd
        self.dbname= dbname
    #创建实现sql语句各种操作的功能函数
    def connect(self):
        self.db=pymysql.connect(self.host,self.user,self.psd,self.dbname)
        self.cur=self.db.cursor()

    def createTable(self,sql):
        self.connect()
        self.cur.execute(sql)
        self.db.close()
    #DML的操作用MySQL事务来管理 所以再创一个函数来捕获异常
    def edit(self,sql):
        try:
            self.connect()
            self.cur.execute(sql)
            self.db.commit()
            self.db.close()
        except:
            self.db.rollback()

    def insertData(self,sql):
        self.edit(sql)

    def deleteData(self,sql):
        self.edit(sql)

    def updateData(self,sql):
        self.edit(sql)

    #查询数据
    def fetchDataOne(self,sql):
        self.connect()
        self.cur.execute(sql)
        res=self.cur.fetchone()
        self.db.close()
        return res

    def fetchAll(self,sql):
        self.connect()
        self.cur.execute(sql)
        res=self.cur.fetchall()
        self.db.close()
        return res

再建一个测试文件

from aaa import DBwork

#创建对象
tool=DBwork("localhost","root","rock1204","test")
#执行行为
# sql="""create table user(
#     id int(10) primary key,
#     name varchar(10) unique,
#     addr varchar(30) default "北京"
#     );"""
# tool.createTable(sql)

sql2="""insert into user(id,name,addr) values(107,"zaqq","长沙");"""
tool.insertData(sql2)

到MySQL里去
在这里插入图片描述
ok!

猜你喜欢

转载自blog.csdn.net/weixin_44285302/article/details/85306546