django配置文件,如何基于开发或生产环境配置路径
如何根据im是否在开发环境或生产环境中配置my settings.py以使用不同的静态根目录和静态URL?通常我有两个settings.py文件,local\u settings.py和settings.py,local\u settings.py用于设置应该是环境本地的变量。通常数据库、路径、调试设置都在这里。此文件从未置于版本控制中。有一个本地_settings.py.tmpl文件,其中保存了需要设置的设置django配置文件,如何基于开发或生产环境配置路径,django,Django,如何根据im是否在开发环境或生产环境中配置my settings.py以使用不同的静态根目录和静态URL?通常我有两个settings.py文件,local\u settings.py和settings.py,local\u settings.py用于设置应该是环境本地的变量。通常数据库、路径、调试设置都在这里。此文件从未置于版本控制中。有一个本地_settings.py.tmpl文件,其中保存了需要设置的设置 然后在settings.py中,我从本地设置导入*注意,如果您使用已安装的应用程序或
然后在settings.py中,我从本地设置导入*注意,如果您使用已安装的应用程序或本地设置文件中任何基于元组的设置,则需要调整settings.py。例如,在settings.py中,将
INSTALLED_APPS=()
更改为INSTALLED_APPS+=()
。有几种方法,最简单的方法是再导入一个文件(通常是local_settings.py
)并覆盖主设置(生产设置位于主settings.py
,本地更改位于local\u settings.py
)
代码:
另一种选择是保留几个单独的配置文件,如设置\u prod.py
,设置\u dev.py
等。每个文件都有自己的配置设置集,但保持同步是一个噩梦。但是,将设置的一部分移动到单独的文件中(比如conf/db.py
,conf/app_data.py
,conf/locale.py
,conf/logging.py
(等等),然后在设置文件中导入它们会有很大帮助。
通过指定-s
或--settings
选项使用这些设置,并将模块名称作为参数(不带.py部分)
我看到了第二个选项的一些扩展,这组设置是根据环境变量/路径/机器名自动选择的。因此,有一个settings.py
,带有一个代码来选择要加载的设置。这个选项很好,所以您不需要一直指定-s
最后但并非最不重要的是使用django admin.py
而不是manage.py
。这两个文件之间的区别在于manage.py
为特定项目设置了一个django\u设置\u模块
环境变量。但是,如果您将有一个用于开发的VirtualEnvironment,您可以设置本地DJANGO_SETTINGS_MODULE
指向正确的设置文件,然后使用DJANGO admin.py
而无需指定配置
在项目之间切换也应该很容易
我相信没有更多的选择,但至少你可以看到有什么:)
try:
from local_settings import *
except ImportError:
pass