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