我想在我的设置中有一些东西,比如
if ip in DEV_IPS:
SOMESETTING = 'foo'
else:
SOMESETTING = 'bar'
有没有一种简单的方法来获取 ip 或主机名 - 也是 - 这是一个坏主意吗?
import socket
socket.gethostbyname(socket.gethostname())
但是,我建议不要这样做,而是为您正在使用的每个环境维护多个设置文件。
settings/__init__.py
settings/qa.py
settings/production.py
__init__.py
有你所有的默认值。在 和任何其他设置文件的顶部qa.py
,第一行具有:
from settings import *
然后是该特定环境所需的任何覆盖。
一些商店使用的一种方法是在每台机器上设置一个环境变量。也许叫做“环境”。在 POSIX 系统中,您可以ENVIRONMENT=production
在用户的 .profile 文件中执行类似操作(对于每个 shell 和操作系统,这将略有不同)。然后settings.py
你可以做这样的事情:
import os
if os.environ['ENVIRONMENT'] == 'production':
# Production
DATABASE_ENGINE = 'mysql'
DATABASE_NAME = ....
else:
# Development