【问题标题】:django // conditional settings depend on aws instance serverdjango // 条件设置取决于 aws 实例服务器
【发布时间】:2020-07-25 12:59:45
【问题描述】:

环境

django 2.2

python 3.6

AWS EC2 ubuntu 实例

独角兽

nginx


我的设置

现在我正在使用一个生产服务器 aws ubuntu 实例。

我将settings.py depond 在本地和生产服务器上分开如下。

# local : Project/setting/dev.py
DEBUG = True
ALLOWED_HOSTS = ['localhost']
database = {
    ..skip..
}


# production : Project/setting/real.py
DEBUG = False
ALLOWED_HOSTS = ['~real_server_host of ec2~']
database = {
    ..AWS RDS instance for real..
}


# manage.py
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Project.settings.dev")

# wsgi.py
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Project.settings.real")


问题

在部署到真实环境之前,我必须运行另外一个 aws 实例进行测试

所以我制作了相同的 EC2 实例和 RDS 实例(从真实 rds 转储)进行测试。

但我不知道如何将os.environ.setdefaultwsgi.py 分开

一旦我为测试服务器制作了另一个设置文件。

# Project/setting/test.py
DEBUG = True
ALLOWED_HOSTS = ['~test_server_host of ec2~']
database = {
    ..AWS RDS instance for test..
}

我希望下面的代码可以工作。

# wsgi.py
if realserver:
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Project.settings.real")
else:
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Project.settings.test")

我必须使用另一个 api url 取决于真实或测试。

# views.py
if real:
   get_data = requests.get(real_api.apiurl.com)
else :
   get_data = requests.get(test_api.apiurl.com)

我该怎么做?

【问题讨论】:

    标签: python django amazon-ec2 amazon-rds


    【解决方案1】:

    我成功解决了问题,所以分享一下解决方法。

    我为每个服务器放置相同键和不同值的环境变量,并在环境变量为“测试”时使用“设置”作为“测试”。

    # wsgi.py
    
    try:
        test = os.environ['IS_ENV']
        if test == 'test':
            os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Project.settings.prod_test")
        else:
            os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Project.settings.prod_eb")
    except KeyError:
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Project.settings.prod_eb")
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 2023-01-18
      • 2018-04-22
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多