Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django配置文件,如何基于开发或生产环境配置路径_Django - Fatal编程技术网

django配置文件,如何基于开发或生产环境配置路径

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中,我从本地设置导入*注意,如果您使用已安装的应用程序或

如何根据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中,将
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