前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python项目简单实现自定义配置覆盖默认配置

python项目简单实现自定义配置覆盖默认配置

作者头像
阿章-python小学生
发布2018-05-18 17:05:19
1.5K0
发布2018-05-18 17:05:19
举报

可能项目中经常遇到,我需要再开发环境维护一份配置文件,等到了测试环境,我要更改默写配置项,而到了生产又需要更改某些设置项。这些设置项多了改起来就要来回翻代码,很不方便。下面用一种简单的方法简化这个逻辑,使得代码更改起来方便,自然,优雅。 比如,之前config.py中是这样的:

import uuid
DEBUG = True
HOST = “127.0.0.1”
PORT = 8080SCHEMA = f’http://{HOST}:{PORT}‘
CHECK_CODE_TEXT_DIR = “d:/checkCodeTxt/“
CHECK_CODE_IMG_DIR = “d:/checkCodeImg/“
TEMP_DIR = “d:/info/temp/“ + uuid.uuid4().hex + ‘/‘
LOG_DIR = “d:/info/log/“
COOKIE_DIR = “d:/info/cookie/“
CHROME_DRIVER_PATH = “d:/chromedriver.exe”
PHANTOMJS_PATH = r”D:\phantomjs-2.1.1-windows\bin\phantomjs.exe”
FLASH_VERSION = “26.0.0.137”
FLASH_PATH = r”C:\Windows\SysWOW64\Macromed\Flash\pepflashplayer32_26_0_0_137.dll”
UPLOAD_EXE_PATH = “d:/uploadImg.exe”

项目其他地方引用配置使用config.DEBUG这样引用。这里有一些东西上线需要更换,比如我要把debug改成False,把端口号改成5000,把

FLASH_PATH 这个地址更改成测试环境的,而其他项不需要变。 现在重构成这样。 新建文件config_default.py把原来config.py中的配置都移动过去, 然后新建config_override.py里面写环境特有的数据。 然后config.py写成这样:

from config_default import *
try:
    from config_override import *
except ImportError:
    pass

if name == ‘main‘:
    # 这里可以测试覆盖是否生效
    p‍rint(DEBUG)
    print(FLASH_PATH)
    print(CHECK_CODE_IMG_DIR)
    pri‍nt(PORT)

之前别的地方引用配置的方式还是config.DEBUG这样不变,即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python全栈布道师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档