在django中很常见的是用一个local_settings.py
文件来补充settings.py
,这样每台机器可以有不同的设置。通常人们会做这样的事情。
try:
from local_settings import *
except ImportError:
print "No local settings found!"
但设置文件通常包含大型列表,例如INSTALLED_APPS
. 如果我想添加一个应用程序,我宁愿不将整个列表复制到local_settings.py
并修改它(使代码可读性降低,并且更新settings.py
不再影响任何重写的机器INSTALLED_APPS
)。所以我想我可以做这样的事情:
try:
f = open('local_settings.py','r')
exec f.read()
except IOError:
print "No local settings found!"
现在local_settings.py
不再需要重写整个INSTALLED_APPS
变量:
INSTALLED_APPS.append('debug_toolbar')
我的印象是,无论您何时使用exec
,或者eval
您可能做错了什么。所以我的问题是,这有什么问题吗?有更好的方法吗?