1. python文件导入
在封装自己的数据库工具类的时候,最开始使用 pymysql.connect,分别传入不同的配置,但是在使用的时候 配置信息都写到了程序中,耦合性过高,如:
接着想法是使用io读写文件,设置配置信息;但是:io读取有可能会有权限的问题, 尽量用import导入。 由编译器来帮你把数据处理到内存里,最后发现这种写法:
定义setting.py,以json的形式存储数据
db_config={
'host': '192.168.xxx.xxx',
'user': 'root',
'password': 'xxx',
'db': 'xxx',
}
在调用的时候使用import导入模块
from setting import db_config
import pymysql
conn = pymysql.connect(**db_config)
with conn:
print(conn.open) # True
2. configparser模块
该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)
例如:
[database]
host: localhost
password : root
port : 3306
dbname : test
(1) 读取配置文件
from configparser import ConfigParser # 导入内置模块
CONFIG_PATH = "" # 配置文件路径
cfg = ConfigParser() # 创建实例
cfg.read(CONFIG_PATH) # 读取配置文件
print(f"sections are: {cfg.sections()}") # 获取配置中的分组信息
print(f"port: {cfg.getint('database', 'port')}") # 根据分组信息获取字段值
print(f"host: {cfg.get('database', 'host')}")
将ConfigParser实例对象当作字典操作即可
(2)写入配置文件
from configparser import ConfigParser # 导入内置模块
CONFIG_PATH = "" # 配置文件路径
cfg = ConfigParser() # 创建实例
cfg.read(CONFIG_PATH) # 读取原有配置
cfg['test'] = {
"name": "righteye",
"age": 18,
"address": "bbb"
}
with open(CONFIG_PATH, 'w') as file:
cfg.write(file)
最终将配置信息和代码成功解耦,修改配置信息不用在改动源代码