我正在为我的 Django 项目使用设置模块而不是单个设置文件。这意味着在我的 wsgi.py 文件中我有这样的东西:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.prod") 或者 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.dev")
取决于我的环境。我真的很想能够在配置文件中设置一个变量,这样我就不必在每次推送到产品时都进入这个文件并更改它。
你是说没什么大不了的?好吧,很容易忘记然后繁荣我的应用程序是不安全的,因为它在开发设置上。我还会在我的应用程序的其他地方使用这个配置变量,所以我有一个“全局”标志,可以将我的应用程序设置为生产或开发设置。
请您参考如下方法:
这个方法怎么样,创建三个设置文件:
- settings.py(主)
- settings_dev.py(覆盖开发服务器的一些设置)
- settings_prod.py(覆盖生产服务器的一些设置)
在 settings.py 文件的末尾检查如果 DEBUG=True 然后导入 settings_dev.py 否则 settings_prod.py:
设置.py:
----
try:
if DEBUG:
from settings_dev import *
else:
from settings_prod import *
except ImportError:
pass
使用这种方法你只需要设置:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
现在不要说如果我忘记更改特定服务器的 DEBUG 值会怎样。然后另一个解决方案是有两个单独的存储库在 git 忽略列表中添加 settings_prod.py 用于开发存储库,并在 git 忽略列表中添加 settings_dev.py 用于生产。始终在 settings_prod.py 中设置 DEBUG=False 并在 settings.py 文件中设置 DEBUG=True,然后在settings.py 文件的末尾执行此操作:
try:
from settings_dev import *
except ImportError:
try:
from settings_prod import *
except ImportError:
pass
