我想知道是否有可能分开Django中的“本地”配置(静态本地路径,模板内容必须是绝对的,本地数据库信息等。 。)来自“全局”配置(URL,中间件类,安装的应用程序等),以便几个人可以在Git或SVN上使用同一个项目,而无需在每次提交完成时重写本地设置!Django settings.py:独立的本地和全局配置
谢谢!
我想知道是否有可能分开Django中的“本地”配置(静态本地路径,模板内容必须是绝对的,本地数据库信息等。 。)来自“全局”配置(URL,中间件类,安装的应用程序等),以便几个人可以在Git或SVN上使用同一个项目,而无需在每次提交完成时重写本地设置!Django settings.py:独立的本地和全局配置
谢谢!
是的,当然。 settings.py文件只是Python,因此您可以在其中执行任何操作 - 包括动态设置,并导入其他文件以覆盖。
所以这里有两种方法。首先不是硬编码任何路径,而是动态计算它们。
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = [
os.path.join(PROJECT_ROOT, "templates"),
]
等神奇的Python关键词__file__
给出了路径添加到当前文件。
第二是具有local_settings.py
文件SVN,这是在主settings.py的端进口的外面和覆盖任何设置有:
try:
from local_settings import *
except ImportError:
pass
在try /除外,是确保即使local_settings不存在,它仍然有效。
当然,你可以尝试这些方法的组合。
你可以将你的配置分割成不同的文件。由于它们是用python编写的,你只需使用从其他设置文件导入设置,你甚至可以根据某些上下文将导入条件导入本地设置。
[如何在Django中管理本地和生产设置?](http://stackoverflow.com/questions/1626326/how-to-manage-local-vs-production-settings-in-django) – 2011-04-07 15:59:57
另见http://stackoverflow.com/questions/88259/how-do-you-configure-django-for-simple-development-and-deloyment – 2011-04-07 16:00:15