【发布时间】: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.setdefault 与wsgi.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