• python操作mysql数据库


    在我们做自动化测试工作中,肯定会用到查询数据库验证数据库的操作;

    本篇主要写的就是封装好的针对数据库的基本操作,如果工作中遇到造数据也可以直接调用;

    代码:

    # project  :Python_Script
    # -*- coding = UTF-8 -*-
    # Autohr   :XingHeYang
    # File     :operation_mysql_database.py
    # time     :2019/11/5  10:24
    # Describe :封装对mysql数据库的基本操作
    # ---------------------------------------
    import pymysql
    
    class Operation_Mysql():
    
        def __init__(self,host,user,password,db,charset='utf8'):
            '''
            初始化连接mysql的操作
            :param host: 传入mysql主机地址
            :param user: 传入连接mysql用户名
            :param password: 传入连接密码
            :param db: 指定数据库名
            :param charset: 字符编码格式  默认utf8编码
            '''
            self.connect = pymysql.connect(    # 连接mysql
                host = host,
                user = user,
                password = password,
                db = db,
                charset = charset,
            )
        def __execute_sql(self,sql):
            '''
            该方法是一个私有方法,主要用于执行sql语句
            :param sql: 传入要执行的sql语句
            :return: 如果是查询语句,将会返回查询的结果值。
            :return_type:返回tuple类型
            '''
            with self.connect.cursor() as cursor:  # 通过游标对象获取容器
                cursor.execute(sql)                # 通过游标对象执行sql语句
                data = cursor.fetchall()           # 获取执行sql后的返回数据,插入数据和创建表是没有返回数据的,结果为空元组
            self.connect.commit()                  # 通过连接对象将对数据库的操作进行提交
            return data                            # 返回查询后的数据
    
        def insert_data(self,table,*args):
            '''
            封装的插入数据的方法
            :param table: 传入要插入数据的表名
            :param args: 传入插入的数据值,传入类型是元组
            '''
            sql = "insert into %s values %s" % (table, tuple(*args))
            self.__execute_sql(sql)                    # 调用私有方法,执行sql语句
    
        def create_table(self,tbale,table_type):
            '''
            封装创建表的方法
            :param tbale: 传入要创建的表名
            :param table_type: 传入要创建表的字段 数据类型和表约束;传入一个字符串的类型
            '''
            sql = "create table %s(%s)"%(tbale,table_type)
            self.__execute_sql(sql)                    # 调用私有方法,执行sql语句
    
    
    
        def select_data(self,sql):
            '''
            封装的查询语句的方法
            :param sql: 因查询的方式太多,所以直接传入sql语句进行查询
            :return: 返回查询后的结果数据
            '''
            data = self.__execute_sql(sql)
            return data
    
        def execute_sql(self,sql):
            '''
            公有的执行sql语句方法;主要用于修改数据和删除数据
            :param sql: 传入需要执行的sql语句
            '''
            self.__execute_sql(sql)

       
        def close_connect(self):
            '''
            主要用于关闭连接
            :return:
            '''
            self.connect.close()
    
    
    
    if __name__ == '__main__':
        # 创建操作数据库对象
        operation = Operation_Mysql('localhost','root','123456','hrdb')
        # 创建表
        type = 'name varchar(20),age int,sex char(10)'
        operation.create_table('userInfo',type)
        # 插入数据
        tuple1 = ['zhangsan', 18, 'man']
        operation.insert_data('userInfo',tuple1)
        # 查询数据,并输出
        sql = 'select * from userInfo'
        print(operation.select_data(sql))
        # 删除数据
        sql = "delete from userInfo"
        operation.execute_sql(sql)
       operation.close_connect()
  • 相关阅读:
    graalvm 内置require 模块的开启
    Calling out from Java to JavaScript (with call back) – leveraging interoperability support of GraalVM
    web开发 api 资源跨域的一种实践
    使用rollup 转换commonjs 模块为es6 模块,方便的支持graalvm 模块兼容
    使用json-mask 查询json 数据
    nginx njs docker 试用
    使用nginx-prometheus-exporter 监控nginx
    wso2 关于graphql 的方案
    docker也一直发展
    操作系统-容器-Docker:如何将应用打包成为 Docker 镜像?
  • 原文地址:https://www.cnblogs.com/XhyTechnologyShare/p/11798305.html
Copyright © 2020-2023  润新知