我想知道是否可以从“全局”配置(URL)中分离Django中的“本地”配置(本地路径为静态,模板内容必须是绝对的,本地数据库信息等...) ,中间件类,安装的应用程序等...)这样几个人可以通过Git或SVN在同一个项目上工作,而不必每次提交都重写本地设置!
谢谢!
答案 0 :(得分:13)
是的,当然。 settings.py文件只是Python,因此您可以在其中执行任何操作 - 包括动态设置和导入其他文件以覆盖。
所以这里有两种方法。第一种是不对任何路径进行硬编码,而是动态计算它们。
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = [
os.path.join(PROJECT_ROOT, "templates"),
]
等。神奇的Python关键字__file__
提供了当前文件的路径。
第二个是在SVN之外有一个local_settings.py
文件,该文件是在主settings.py的 end 导入的,并覆盖那里的任何设置:
try:
from local_settings import *
except ImportError:
pass
try / except是为了确保即使local_settings不存在它仍然有效。
当然,您可以尝试这些方法的组合。
答案 1 :(得分:0)
您可以将配置拆分为不同的文件。由于它们是用python编写的,你只需使用import local_settings
从其他设置文件导入设置,你甚至可以将导入放在条件中,以根据某些上下文导入本地设置。
查看文档:{{3}}