gpt4 book ai didi

python - 管理不同环境的配置

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:51 28 4
gpt4 key购买 nike

我和工作中的一些人讨论过,我们无法得出结论。
我们面临两难选择 - 您如何管理不同环境的不同配置值?

我们提出了一些选择,但似乎没有一个能让我们满意:
- 单独的配置文件(即 config.testconfig.prod 等),并有一个指向所选文件的文件(位于 ~/env 例如),或者指向它的环境变量。
- 使用单个数据库存储所有配置(您可以在您的环境中查询并获取相应的配置值)
- 在部署时创建配置文件(使用 CI/CD 系统,如 Atlassian Bamboo)

哪个是使用更广泛的选项?有没有更好的方法?
配置文件是否应该与其余代码一起保存在 git 存储库中?我们的系统是用 python 编写的(2.7 和 3)

最佳答案

您可以将所有这些配置放在一个配置文件 config.py 中。

class Base():
DEBUG = False
TESTING = False

class DevelopmentConfig(Base):
DEBUG = True
DEVELOPMENT = True
DATABASE_URI = "mysql+mysqldb://root:root@localhost/demo"

class TestingConfig(Base):
DEBUG = False
TESTING = True
DATABASE_URI = "mysql+mysqldb://root:root@test_server_host_name/demo_test"

class ProductionConfig(Base):
DEBUG = False
TESTING = False
DATABASE_URI = "mysql+mysqldb://root:root@prod_host_name/demo_prod"

在 shell 上设置环境变量,如

APP_SETTINGS = config.DevelopmentConfig

在您的主应用程序 app.py 中,加载此环境变量(以 flask 应用程序为例)

from flask import Flask
import os

app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])

希望对你有帮助

关于python - 管理不同环境的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50610832/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com