本文共 1791 字,大约阅读时间需要 5 分钟。
通常,一个Web App在运行时都需要读取配置文件,比如数据库的用户名、口令等,在不同的环境中运行时,Web App可以通过读取不同的配置文件来获得正确的配置。
学习笔记来源-廖雪峰老师
#!/usr/bin/env python3# -*- coding: utf-8 -*-# Python基础- 配置文件[开发环境的标准配置]'''缺省配置'''configs = { 'debug': True, 'database': { 'host':"127.0.0.1", "port":3306, "user": "root", "password":"", "database":"sufadi" }, "session":{ "secret": "sufadi" }}
# config_override.py#!/usr/bin/env python3# -*- coding: utf-8 -*-# Python基础- 覆盖配置文件的某些默认设置[生产环境的标准配置]configs = { "database":{ "host":"192.168.0.100" }}
#!/usr/bin/env python3# -*- coding: utf-8 -*-# Python基础- 配置文件[所有配置读取的统一]import config_defaultclass Dict(dict): def __init__(self, name = (), values = (), **kw): super(Dict, self).__init__(**kw) for k, v in zip(name, values): self[k] = v def __getattr__(self, key): try: return self[key] except KeyError: raise AttributeError(r"Dict 内有该属性 %s" % key) def __setattr__(self, key, value): self[key] = valuedef merge(defaults, override): r = {} for k, v in defaults.items(): if k in override: if isinstance(v, dict): r[k] = merge(v, override[k]) else: r[k] = override[k] else: r[k] = v return rdef toDict(d): D = Dict() for k, v in d.items(): D[k] = toDict(v) if isinstance(v, dict) else v return Dconfigs = config_default.configstry: import config_override configs = merge(configs, config_override.configs)except ImportError: passconfigs = toDict(configs)
默认的配置文件应该完全符合本地开发环境,这样,无需任何设置,就可以立刻启动服务器。
git add .git commit -m "Python基础-项目-day6 配置文件"git push -u origin master
转载地址:http://jacti.baihongyu.com/