python操作Mysql数据库DBAPI

上次我们用几行代码简单实现了pycharm远程连接数据库,并且操作查询,但是这仅仅是在数据库已经存在并且已经有表的前提下,来获取数据,更多的时候需要我们自己创建数据库,创建一张表来写入我们需要保存的数据,于是,接下来的代码块就足以实现功能,并且我把它封装成类,以方便自己调用

代码块

# 导入库
import math
import pymysql
import random



# 这里定义一个类
class Dbapi(object):


    def __init__(self):
        # 2,与数据库建立链接
        self.db_conf = {
            'host': '192.168.61.129',   # 主机ip
            'port': 3306,               # mysql 默认的端口
            'user': 'admin',            # 用户名
            'password': 'Root110qwe',   # 密码
            'db': 'student',            # 数据库名
            'charset': 'utf8'           # 编码方式,注意,这里不是 utf-8
        }

        # 3,创建游标对象
        self.conn = pymysql.connect(**self.db_conf)
        self.cursor = self.conn.cursor()


    # 定义创建表方法
    def create_table(self):
        try:
            # 先判断是否存在这张表,存在就删除并且新建
            self.cursor.execute('drop tables if exists student')
            self.cursor.execute("create table student(id int PRIMARY KEY,name varchar(20),age int)")
            print('创建表成功')
        except Exception as e:
            print(e)
            print('创建表失败')


    # 定义插入数据方法
    def insert_data(self):
        sql = 'insert into student (id,name,age) VALUES '
        #name = ['杨奎','刘宏','何果','杨乾','梁京斌','陶发强']
        for i in range(6):
            #var1 = print(name[i])
            #temp = f'({i+1},{name[i]},{random.randint(18,30)}),'
            temp = '(%s,"NanFeng%s",%s),'%(i+1,i+1,random.randint(18,30))
            sql += temp
        sql = sql[:-1]      # 这里的sql进行处理上面temp末尾的逗号  ‘,’
        try:
            self.cursor.execute(sql)
            self.conn.commit()
            print('数据写入成功')

        except Exception as e:
            self.conn.rollback()
            print(e)
            print('数据写入失败')


    #定义查询数据方法
    def select(self):
        try:		# 下面的语句和我的上一篇完全一致

            sql = 'select * from student'

            rv = self.cursor.execute(sql)
            resp = self.cursor.fetchall()
            [print(var2) for var2 in resp]

        except Exception as e:
            self.conn.rollback()
            print(e)

        finally:
            self.conn.commit()
            self.cursor.close()
            self.cursor.close()


# 类实例化
db = Dbapi()


# 定义一个主函数
def main():
    db.create_table()
    db.insert_data()
    db.select()

if __name__ == '__main__':
   # 调用函数,执行功能
   main()

输出结果

创建表成功
数据写入成功
(1, 'NanFeng1', 21)
(2, 'NanFeng2', 25)
(3, 'NanFeng3', 21)
(4, 'NanFeng4', 24)
(5, 'NanFeng5', 20)
(6, 'NanFeng6', 25)

接下来还是一样进入数据库里面看看数据是否相同

显示所有的表
在这里插入图片描述
查看表结构
在这里插入图片描述
查询数据
在这里插入图片描述

最后发现,完全一致,ok,大功告成
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值