Python 在';美元之后自动定制Django项目django-admin.py startproject my#U项目&x27;使用zc.buildout

Python 在';美元之后自动定制Django项目django-admin.py startproject my#U项目&x27;使用zc.buildout,python,django,buildout,Python,Django,Buildout,我浏览了官方的zc.buildout文档和一些tut,但我没有找到以下问题的明确答案 假设从现在起,我想在每个Django项目(Django1.4)中自动执行以下更改,那么所有这些更改是否可以仅通过buildout.cfg文件执行? 执行$django-admin.py startproject my_project后,我将实施的默认startproject更改示例: $ mkdir ~/path/to/my_project/my_project/db settings.py: 我目前正在构建

我浏览了官方的
zc.buildout
文档和一些tut,但我没有找到以下问题的明确答案

假设从现在起,我想在每个Django项目(Django1.4)中自动执行以下更改,那么所有这些更改是否可以仅通过
buildout.cfg
文件执行?

执行
$django-admin.py startproject my_project
后,我将实施的默认startproject更改示例:

$ mkdir ~/path/to/my_project/my_project/db
settings.py:


我目前正在构建并使用我自己定制的Django源代码1.4分支发行版作为解决方案,但如果我也能使用buildout来实现,那就太好了。

您想要的并不是构建用例集的一部分

您希望在启动项目时自定义生成的代码,而buildout旨在为您提供一个可复制的部署或开发环境

前一个开发人员将使用,后一个旨在让多个开发人员或多台生产机器使用相同的软件堆栈启动并运行


也就是说,当然可以构造一个构建配方,在运行部件时写出这些文件的新版本。例如,使用可以指定在每次运行构建时将模板文件放置在特定位置。请注意,如果这些文件发生更改,这将覆盖它们。

除了Martijn的答案之外:buildout可以创建目录。看看

这是我经常使用它的任务之一(为日志文件创建var/log/for,为sqlite文件创建var/sqlite/dir,等等)

import os
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(ROOT_PATH, 'db/my_project.db'),                      
        'USER': '',                     
        'PASSWORD': '',                  
        'HOST': '',                    
        'PORT': '', 
    }
}