【发布时间】:2011-07-31 18:48:21
【问题描述】:
我想知道是否可以将 Django 中的“本地”配置(静态的本地路径、必须是绝对的模板内容、本地 DB 信息等)与“全局”配置(URL 、中间件类、已安装的应用程序等...),这样几个人就可以通过 Git 或 SVN 处理同一个项目,而无需在每次提交完成时重写本地设置!
谢谢!
【问题讨论】:
标签: python django git configuration project-management
我想知道是否可以将 Django 中的“本地”配置(静态的本地路径、必须是绝对的模板内容、本地 DB 信息等)与“全局”配置(URL 、中间件类、已安装的应用程序等...),这样几个人就可以通过 Git 或 SVN 处理同一个项目,而无需在每次提交完成时重写本地设置!
谢谢!
【问题讨论】:
标签: python django git configuration project-management
您可以将配置拆分为不同的文件。由于它们是用 python 编写的,您只需使用 import local_settings 从其他设置文件导入设置,您甚至可以根据某些上下文将导入设置为导入本地设置的条件。
【讨论】:
是的,当然。 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 不存在它仍然有效。
当然,您可以尝试结合使用这些方法。
【讨论】: