Python Django和AppEngine的多种设置
在当前设置中,我有多个用于本地、临时和生产环境的设置文件。我只是对每台服务器有不同的Python Django和AppEngine的多种设置,python,django,google-app-engine,Python,Django,Google App Engine,在当前设置中,我有多个用于本地、临时和生产环境的设置文件。我只是对每台服务器有不同的DJANGO\u设置\u模块值 但现在我正试图转到AppEngine,我想知道如何使用不同的DJANGO\u设置\u模块环境变量值部署到不同的AppEngine实例 我知道在app.yaml上有env_variables选项,但我没有找到任何方法可以在appcfg.py中覆盖它,就像我在版本和应用程序选项中所做的那样 有什么方法可以满足我的需要吗?我们在应用程序根目录中的appengine\u config.py
DJANGO\u设置\u模块
值
但现在我正试图转到AppEngine,我想知道如何使用不同的DJANGO\u设置\u模块
环境变量值部署到不同的AppEngine实例
我知道在app.yaml
上有env_variables
选项,但我没有找到任何方法可以在appcfg.py
中覆盖它,就像我在版本
和应用程序
选项中所做的那样
有什么方法可以满足我的需要吗?我们在应用程序根目录中的
appengine\u config.py
文件中为我们的webapp2项目使用类似的方法。我们的想法是根据项目的应用程序id交换配置。我为这个例子编了一些常量,但它应该给你足够的时间开始
import os
from google.appengine.api import app_identity
app_id = app_identity.get_application_id()
if os.environ.get('SERVER_SOFTWARE', 'dev').lower().startswith('dev'):
os.environ['DJANGO_SETTINGS_MODULE'] = 'local settings'
elif app_id == MY_DEV_ID:
os.environ['DJANGO_SETTINGS_MODULE'] = 'dev settings'
elif app_id == MY_STAGING_ID:
os.environ['DJANGO_SETTINGS_MODULE'] = 'staging settings'
elif app_id == MY_PROD_ID:
os.environ['DJANGO_SETTINGS_MODULE'] = 'prod settings'
else:
raise ValueError("Unknown app id %" % app_id)
您是在同一个应用程序引擎项目上托管环境,还是在多个项目上托管环境?您可以使用
appengine\u config.py
和设置os.environ['DJANGO\u SETTINGS\u MODULE']
来动态处理它。我使用的是单独的项目。每个环境有不同的app.yaml吗?@filias我没有。我有一个app.yaml
并使用appcfg
的应用程序id标志或gcloud
的--project
标志进行部署,以指定部署到哪个项目。