在我的Django
项目中,我需要访问DJANGO_DEVELOPMENT
环境变量,该变量告知它是开发服务器还是生产(DigitalOcean上的Droplet)。
我想在这个Droplet上设置DJANGO_DEVELOPMENT
到1
,但它不起作用。
我已添加到/etc/environment
这一行:
DJANGO_DEVELOPMENT="1"
重新启动整个Droplet。
然后,我尝试在settings.py
:
if os.environ.get('DJANGO_DEVELOPMENT') == '1':
logger.info('DJANGO_DEVELOPMENT=="1"')
from dev_settings import *
else:
logger.info('no DJANGO_DEVELOPMENT VAR')
logger.info(os.environ.get('DJANGO_DEVELOPMENT'))
logger.info(os.environ.items())
记录下来:
2018-03-24 13:09:43,007 - MyProject.settings - INFO - no DJANGO_DEVELOPMENT VAR
2018-03-24 13:09:43,007 - MyProject.settings - INFO - None
2018-03-24 13:09:43,014 - MyProject.settings - INFO - [('LANG', 'en_US.UTF-8'), ('SUPERVISOR_SERVER_URL', 'unix:///var/run/supervisor.sock'), ('SUPERVISOR_ENABLED', '1'), ('SUPERVISOR_PROCESS_NAME', 'daphne'), ('DJANGO_SETTINGS_MODULE', 'MyProject.settings'), ('SUPERVISOR_GROUP_NAME', 'daphne'), ('PATH', '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('LC_ALL', 'en_US.UTF-8')]
但当我ssh
到Droplet并手动检查变量时,似乎设置了:
root@MyProject-v1:~# echo $DJANGO_DEVELOPMENT
1
root@MyProject-v1:~# su - futilestudio
futilestudio@MyProject-v1:~$ echo $DJANGO_DEVELOPMENT
1
futilestudio@MyProject-v1:~$
不知道问题出在哪里,不是一个错误吗?
答案 0 :(得分:0)
尝试也写
export DJANGO_DEVELOPMENT="1"
<{1>}或/etc/environment
中的
答案 1 :(得分:0)
对于工作Django收到DJANGO_SETTINGS_MODULE环境变量。以同样的方式传递你的变量。
P.S。通过传递环境变量来配置开发/生产状态并不是一个好办法,对不同的状态使用不同的设置模块。