您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Flask:如何管理不同的环境数据库?

Flask:如何管理不同的环境数据库?

我使用的解决方案:

#__init__.py
app = Flask(__name__)
app.config.from_object('settings')
app.config.from_envvar('MYCOOLAPP_CONfig',silent=True)

在加载应用程序的同一级别上:

#settings.py
SERVER_NAME="dev.app.com"
DEBUG=True
SECRET_KEY='xxxxxxxxxx'


#settings_production.py
SERVER_NAME="app.com"
DEBUG=False

所以。如果环境变量MYCOOLAPP_CONfig不存在->仅加载settings.py,这是指认设置(对我来说 是开发服务器)这是“ silent = True”的原因,不需要第二个配置文件,而settings.py认用于开发,并具有公共配置键的认值

如果除第一个设置之外还将加载其他settings_file,它将覆盖原始设置中的值。(在我的示例中,DEBUG和SERVER_NAME将被覆盖,而SECRET_KEY对于所有服务器均保持不变)

您应该自己发现的唯一内容取决于启动应用程序的方式。 在启动ENVVAR之前,应设置MYCOOLAPP_CONfig的设置 例如,我使用超级用户守护程序运行,并在生产服务器上将其放入超级用户配置文件中:

environment=MYCOOLAPP_CONfig="/home/tigra/mycoolapp/settings_production.py"

通过这种方法,您可以轻松管理所有配置文件,并且可以从git或任何其他版本控制实用程序中排除此文件

启动之前,控制台中的认Linux方式是:export MYCOOLAPP_CONfig="/home/tigra/mycoolapp/settings_production.py"

Python 2022/1/1 18:32:46 有218人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶