Django大厦

Django大厦,django,buildout,Django,Buildout,我开始尝试使用Django的buildout。我想使用buildout作为部署项目和应用程序的主要安装方法。在这种情况下,每个应用程序和项目都包含一个构建是最好的吗?您应该在什么级别应用构建 谢谢 托德我通常的设置方式如下: buildout_dir/ + bootstrap.py + buildout.cfg + ... + <project_name>/ + settings.py + templates/ + media/

我开始尝试使用Django的buildout。我想使用buildout作为部署项目和应用程序的主要安装方法。在这种情况下,每个应用程序和项目都包含一个构建是最好的吗?您应该在什么级别应用构建

谢谢


托德

我通常的设置方式如下:

buildout_dir/
  + bootstrap.py
  + buildout.cfg
  + ...
  + <project_name>/
      + settings.py
      + templates/
      + media/
      + ...  
buildout\u dir/
+bootstrap.py
+buildout.cfg
+ ...
+ /
+设置.py
+模板/
+媒体/
+ ...  
由于构建(在我的例子中)通常绑定到单个项目,因此我将直接将django项目存储在构建中。顺便说一下:我正在构建配置中使用

我编写的应用程序是简单的鸡蛋,具有这种布局:

django-<app_name>/
  + setup.py
  + <app_name>/
      + __init__.py
      + models.py
      + ...

django-.

我在项目(网站)根目录中始终至少有两个/三个构建配置:


对我来说,我给每一个应用程序和每一个项目一个构建。这个项目的建设是为了,嗯,建立这个网站。包括:

  • 生成apache/nginx配置文件(collective.recipe.template)

  • 也许是一份工作

  • 如果你想运行一个单独的gunicorn或者其他什么的话,也许是主管

每个应用程序都有一个构建。这里的目标是使设置一个隔离环境变得容易,特别是用于测试的环境。您不需要部署应用程序,只需要将其设置到足以运行开发服务器和运行测试的程度


对我来说,构建是隔离(比如virtualenv)加上安装(比如pip)再加上项目自动化。在应用程序中,您将主要使用前两个。而这三种方法都适用于站点。

我总是为每个项目创建一个构建,以获取所有必需的依赖项。这可以是简单的代码,也可以是使用mr.developer的git(hub)的内部依赖

我认为没有必要对每个应用程序进行构建。对于每个django设置配置(例如开发、生产等),最好有一个匹配的buildout.cfg

构建仅应用于项目文件夹,依赖项将自动包含(并且在使用mr.developer时可自定义)


另外,在我看来,包括bootstrap.py有点过时;我总是运行virtualenv+pip安装zc.buildout。这也可以在项目文件夹本身或外部(例如~/virtualenvs/myproject-123)

如果您还不知道,这可能会让您感兴趣:作为记录:我添加了buildout标记。嘿,谢谢,我不知道视频。它就在我的必看名单上。谢谢你的澄清。这是我挂断的最后一句话,应用程序应该是鸡蛋还是自己构建。但是我想我会走鸡蛋的路。哇,开始有点慢,但有点不幸的是,djangorecipe指向现有Django项目的选项被称为projectegg。我花了很长时间才明白,我只需要将Django项目放在buildout目录中就行了(但答案是这样的)。相反,我试图弄清楚如何将egg下载到buildout目录中。
/
|- buildout.cfg    # contains bas configuration used by other cfg files
|- development.cfg # adds ton of eggs used only in development and generates manage script using djangorecipe 
|- production.cfg  # most of the time it contains versions and generates django script using djangorecipe