美文网首页
python3使用pymysql模块,连接mysql数据库,实现

python3使用pymysql模块,连接mysql数据库,实现

作者: wangcc_sd | 来源:发表于2019-04-18 23:23 被阅读0次

    1、环境数据准备:

    python3环境、pymysql模块

    mysql数据库:本次代码中用到的数据库为本地的testdb数据库,user表(表字段比较简单,只有主键id,手机号mobile,密码passwd)

    2、本次代码直接封装为类,代码中附有注释,把数据库参数改为自己实际的就可以直接使用

    #引入pymysql模块
    import pymysql
    
    class DoMysql:
        #初始化
        def __init__(self):
            #创建连接
            self.conn = pymysql.Connect(
              host = 'localhost',
              port = 3306,
              user = 'root',
              password = 'root',
              db = 'testdb',
              charset = 'utf8',
              cursorclass = pymysql.cursors.DictCursor  #以字典的形式返回数据
            )
            #获取游标
            self.cursor = self.conn.cursor()
    
        #返回多条数据
        def fetchAll(self,sql):
            self.cursor.execute(sql)
            return self.cursor.fetchall()
    
        #插入一条数据
        def insert_one(self,sql):
            result = self.cursor.execute(sql)
            self.conn.commit()
            return result
    
        #插入多条数据
        def insert_many(self,sql,datas):
            result = self.cursor.executemany(sql,datas)
            self.conn.commit()
            return result
    
        #更新数据
        def update(self,sql):
            result = self.cursor.execute(sql)
            self.conn.commit()
            return result
    
        #关闭连接
        def close(self):
            self.cursor.close()
            self.conn.close()
    
    
    
    
    if __name__ == '__main__':
        mysql  = DoMysql()
        #插入一条数据
        sql = 'insert into `user`(`mobile`,`passwd`) values("13100010000","123456")'
        result = mysql.insert_one(sql)
        print(result) #返回插入数据的条数(1)
    
        #插入多条数据
        datas = [
            ("13100010001","111111"),
            ("13100010002","666666")
        ]
        sql = 'insert into `user`(`mobile`,`passwd`) values(%s,%s)'
        result = mysql.insert_many(sql,datas)
        print(result) #返回插入数据的条数(2)
    
        #查询数据
        sql = 'select * from user'
        result = mysql.fetchAll(sql) #返回列表,如果多条数据,列表中嵌套字典
        for item in result:
            print(item.get('mobile')) #循环列表,输出mobile值
    
        #关闭连接
        mysql.close()
    

    3、扩展信息

    pymysql.Connect()参数说明
    host(str): MySQL服务器地址
    port(int): MySQL服务器端口号
    user(str): 用户名
    passwd(str): 密码
    db(str): 数据库名称
    charset(str): 连接编码

    connection对象支持的方法
    cursor() 使用该连接创建并返回游标
    commit() 提交当前事务
    rollback() 回滚当前事务
    close() 关闭连接

    cursor对象支持的方法
    execute(op) 执行一个数据库的查询命令
    fetchone() 取得结果集的下一行
    fetchmany(size) 获取结果集的下几行
    fetchall() 获取结果集中的所有行
    rowcount() 返回数据条数或影响行数
    close() 关闭游标对象

    相关文章

      网友评论

          本文标题:python3使用pymysql模块,连接mysql数据库,实现

          本文链接:https://www.haomeiwen.com/subject/kotfgqtx.html