zoukankan      html  css  js  c++  java
  • 配置文件+正则参数化+mysql数据库封装

    配置文件  通过configpaser 模块进行读取

    import configparser
    class ReadConfig:
        """
        完成配置文件的读取
        """
        def __init__(self):
            self.config = configparser.ConfigParser()
            self.config.read(contants.global_file)  # 先加载global
            switch = self.config.getboolean('switch', 'on')
            if switch:  # 开关打开的时候,使用online的配置
                self.config.read(contants.online_file, encoding='utf-8')
            else:  # 开关关闭的时候,使用test的配置
                self.config.read(contants.test_file, encoding='utf-8')
        def get(self, section, option):
            return self.config.get(section, option)
    
    config = ReadConfig()

    正则是通过 re 模块  

    def DoRe(data):
        """
        1.用正则表达式来匹配测试数据中的指定字符
        2.根据指定字符获取到配置文件中对应的值
        3.然后进行替换
        """
        pattern = '#(.*?)#'  # 正则表达式   匹配组当中多次或者最多一次单个字符
        while re.search(pattern, data):
            search = re.search(pattern, data)  # 从任意位置开始找,找第一个就返回Match object, 如果没有找None
            group = search.group(1)  # 拿到参数化的KEY
            value = config.get_value('data', group)  # 根据KEY取配置文件里面的值
            """
            记得替换后的内容,继续用data接收
            """
            data = re.sub(pattern, value, data, count=1)  # 查找替换,count查找替换的次数
            print(data)
        return data
    
    
    if __name__ == '__main__':  
        a=DoRe('{"mobilephone":"#user_mobile#","pwd":"#user_password#"}')
        print(a)
    

    数据库通过pymsql

    class DoMysql:
        """
        初始化:
        1.从配置文件获取到数据库的连接信息
        2.建立光标
        方法:
        1.执行sql语句,获取一个或者全部数据
        2.关闭光标和数据库
        """
        def __init__(self):
            self.mysql = pymysql.connect(host=config.get_value('testdb', 'host'),
                                         port=int(config.get_value('testdb', 'port')),
                                         user=config.get_value('testdb', 'user'),
                                         password=config.get_value('testdb', 'password'),
                                         db=config.get_value('testdb', 'db'),
                                         charset=config.get_value('testdb', 'charset'))
    
            #self.cursor = self.mysql.cursor(cursor=pymysql.cursors.DictCursor)  # 查询的数据以键值对返回
    
            self.cursor = self.mysql.cursor()  # 值返回查询的结果
    
        def fetch_one(self, sql):
            self.cursor.execute(sql)
            return self.cursor.fetchone()
    
        def fetch_all(self, sql):
            self.cursor.execute(sql)
            return self.cursor.fetchall()
    
        def close(self):
            self.cursor.close()
            self.mysql.close()
    
    
    if __name__ == '__main__':
        result = DoMysql().fetch_all('select id from loan where memberid=241;')
        print(result)
    

      

  • 相关阅读:
    转载ORACLE批量绑定FORALL与BULK COLLECT
    Oracle Locking Survival Guide
    转载:TOAD中查看执行计划
    Oracle 9i/10g编程艺术笔记第七章 并发与多版本
    C#调用Oracle存储过程返回多结果集
    转载oracle 字符集查看与修改
    转载:Oracle的优化器(Optimizer)
    Oracle 随笔
    转载:Oracle中SQL语句执行效率的查找与解决
    当查询和设置需要输入Pn时界面的处理方法
  • 原文地址:https://www.cnblogs.com/XXQQ123/p/11539700.html
Copyright © 2011-2022 走看看