zoukankan      html  css  js  c++  java
  • python自动化之pymysql库连接mysql数据库封装成类

    import pymysql

    if __name__ == '__main__':

    host = "被访问数据库的ip地址或者域名"
    port = 端口号
    user = "连接数据库的用户名"
    password = "连接数据库的密码"
    sql = "要查询的SQL语句 "

    # 连接一个给定的数据库,autocommit 默认是False,改成True后会自动帮你提交sql命令
    mysql = pymysql.connect(host=host,user= user,password=password,port=port,charset="utf8",autocommit=True)

    # 建立游标用来执行数据库操作
    cursor = mysql.cursor()

    # 执行sql命令
    cursor.execute(sql)

    #提交sql命令
    mysql.commit()

    # fetchone() :返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None
    # fetchall() : 返回元组嵌套元组,即返回多个记录(rows),如果没有结果 则返回 ()
    # 获取前n行数据 data = cursor.fetchmany(3) 获取前三行数据,元组嵌套元组
    # 需要注明:在MySQL中是NULL,而在Python中则是None

    data = cursor.fetchone()
    print(data)

    # 关闭游标
    cursor.close()

    # 关闭数据库连接
    mysql.close()


    以下是将pymysql要用到的功能进行了封装
    class  MysqlHandler:
    #建立数据库连接,新建一个查询页面
    def __init__(self):
    # port要转为int,这里的各项值是利用的封装好的配置文件configparser库进行的传入section,option进行的读取
    self.mysql = pymysql.connect(host= config.handles.get_value("mysql", "connection"),
    user = config.handles.get_value("mysql", "user"),
    password=config.handles.get_value("mysql", "password"),
    port= int(config.handles.get_value("mysql", "port")), charset="utf8", autocommit=True)
    self.cursor = self.mysql.cursor(pymysql.cursors.DictCursor) # pymysql.cursors.DictCursor 指明了建立的游标是dict fetchone 是字典 fetchalllistdict

    #获取查询结果,结果是dict,上面建立游标指定了是dict
    def query_one(self,sql):
    self.cursor.execute(sql)
    data = self.cursor.fetchone()
    return data

    #关闭查询页面,关闭连接
    def close(self):
    self.cursor.close()
    self.mysql.close()






  • 相关阅读:
    20191323王予涵第五章学习笔记
    反汇编测试
    20191323王予涵第四章学习笔记
    20191323王予涵2.3.1测试
    鲲鹏服务器测试
    缓冲区溢出攻击实验
    20191323王予涵第三章学习笔记
    20191323王予涵第十一章学习笔记
    20191323王予涵第七、八章学习笔记
    20191323王予涵sort
  • 原文地址:https://www.cnblogs.com/xintiaoab/p/13439502.html
Copyright © 2011-2022 走看看