跳转到主要内容

Django构建配方

项目描述

描述

此项目是Jeroen Vloothuis最初创建的django recipe (https://launchpad.net/djangorecipe)的一个分支。分支用于调整我们的内部工作流程和目录结构。

此构建配方可以用于创建Django的配置。它将自动下载Django并将其安装在buildout的沙盒中。

以下是一个如何使用配方的示例

[buildout]
parts = satchmo django
eggs = ipython
versions = versions

[satchmo]
recipe = gocept.download
url = http://www.satchmoproject.com/snapshots/satchmo-0.6.tar.gz
md5sum = 659a4845c1c731be5cfe29bfcc5d14b1

[django]
recipe = cykooz.djangorecipe
settings = development
eggs = ${buildout:eggs}
extra-paths =
  ${satchmo:location}
project = dummyshop

[versions]
Django = 1.3

支持选项

此配方支持以下选项。

project

此选项设置项目的名称。如果项目尚不存在,则配方将创建一个基本结构。

projectegg

当您想使用egg作为项目时,请使用此选项代替project选项。这将禁用项目结构的生成。

python

可以使用此选项指定特定的Python版本,这可以不同于运行buildout的版本。

settings

您可以使用此选项设置要使用的设置文件名称。如果您想有一个与开发设置不同的生产设置,这很有用。默认为development

extra-paths

此处指定的所有路径都将用于扩展bin/*脚本的默认Python路径。

pth-files

将来自站点.pth文件的路径添加到extra-paths。对于像Pinax这样的维护自己的外部_libs目录的东西很有用。

control-script

bin文件夹中创建的脚本名称。这是Django通常创建的manage.py的等效物。默认情况下,它使用部分的名称([ ]之间的部分)。

wsgi

当此设置为true时,在bin文件夹中生成一个额外的脚本。这可以与mod_wsgi一起使用来部署项目。脚本默认名称为control-script.wsgi

WSGI脚本

WSGI脚本的名称。

日志文件

如果使用的WSGI服务器不允许打印到stdout,可以将此变量设置为一个文件系统路径 - 所有stdout/stderr数据将重定向到日志而不是打印

fcgi

类似于WSGI,这将在bin文件夹中创建一个额外的脚本。此脚本可以与FCGI部署一起使用。

测试

如果您想在bin文件夹中的脚本运行特定应用集的所有测试,则可以使用此选项。将此设置为要测试的应用标签列表。

testrunner

这是将要创建的testrunner的名称。默认为test

以下所有选项仅在指定的项目选项尚未创建时才有效。

urlconf

您可以将其设置为特定的url conf。默认将使用project.urls。

media_root

您可以将其设置为特定的MEDIA_ROOT值。默认为os.path.join(os.path.dirname(__file__), ‘media’)

static_root

您可以将其设置为特定的STATIC_ROOT值(仅适用于Django >= 1.3)。默认为os.path.join(os.path.dirname(__file__), ‘static’)

FCGI特定设置

可以在设置文件(settings.py)中设置FCGI选项。选项是FCGI_OPTIONS。它应该设置为字典。下面的部分是一个示例

FCGI_OPTIONS = {
    'method': 'threaded',
}

另一个示例

下一个示例展示了如何使用更多选项

[buildout]
parts = django extras
eggs =
  hashlib

[extras]
recipe = iw.recipe.subversion
urls =
  http://django-command-extensions.googlecode.com/svn/trunk/ django-command-extensions
  http://django-mptt.googlecode.com/svn/trunk/ django-mptt

[django]
recipe = cykooz.djangorecipe
settings = development
project = exampleproject
wsgi = true
eggs =
  ${buildout:eggs}
test =
  someapp
  anotherapp

使用.pth文件的示例

Pinax使用.pth文件向其路径添加许多库;我们可以指定它的目录以将指定的库添加到我们的路径中

[buildout]
parts = PIL
        svncode
        myproject

[PIL]
recipe        = zc.recipe.egg:custom
egg           = PIL
find-links    = http://dist.repoze.org/

[svncode]
recipe        = iw.recipe.subversion
urls          = http://svn.pinaxproject.com/pinax/tags/0.5.1rc1       pinax

[myproject]
recipe        = cykooz.djangorecipe
eggs          = PIL
project       = myproject
settings      = settings
extra-paths   = ${buildout:directory}/myproject/apps
                ${svncode:location}/pinax/apps/external_apps
                ${svncode:location}/pinax/apps/local_apps
pth-files     = ${svncode:location}/pinax/libs/external_libs
wsgi          = true

上面,我们使用标准Pinax的pth文件和extra-paths路径为应用程序,以及我们的项目为将首先在列表中找到的路径。注意,我们期望我们的项目被检出(例如,通过svn:external)直接位于此目录下的“myproject”中。

不同Python版本的示例

要从在生成的脚本中运行buildout的不同Python版本使用,可以使用类似以下内容

[buildout]
parts = myproject

[special-python]
executable = /some/special/python

[myproject]
recipe        = cykooz.djangorecipe
project       = myproject
python                = special-python

mod_wsgi的示例配置

如果您想使用mod_wsgi部署项目,可以使用此示例作为起点

<Directory /path/to/buildout>
       Order deny,allow
       Allow from all
</Directory>
<VirtualHost 1.2.3.4:80>
       ServerName      my.rocking.server
       CustomLog       /var/log/apache2/my.rocking.server/access.log combined
       ErrorLog        /var/log/apache2/my.rocking.server/error.log
       WSGIScriptAlias / /path/to/buildout/bin/django.wsgi
</VirtualHost>

更改

1.2.1

  • 正确的文档

1.2.0

  • 添加了对Django 1.3的支持

  • 添加了static_root选项

  • 修复:从settings.py中移除DEBUG和TEMPLATE_DEBUG选项

1.1.2

  • 如果需要,将Django添加到节段的egg中。

1.1.1

  • 修复:将必要的导入添加到settings.py

1.1

  • 从项目目录中删除manage.py

1.0

  • 从djangorecipe分叉。

  • 移除选项version。现在Django通过egg安装。

  • 添加选项wsgi-script以更改默认的WSGI脚本名称。

  • 现在,该配方通过使用django的startproject命令创建文件settigs.py

0.20

  • 该配方现在使django包在安装期间为setuptools所知。这解决了#397864。感谢Daniel Bruce和Dan Fairs提供的补丁。

  • 修复了#451065,该补丁解决了WSGI日志文件选项的问题。

  • 添加了配置更多FCGI相关设置的选项。感谢Vasily Sulatskov提供的补丁。

0.19.2

  • 当选项更改时,现在将正确地删除生成的WSGI & FCGI脚本(修复了#328182)。感谢Horst Gutmann提供的补丁。

  • 当依赖关系更改时,现在将更新脚本。这解决了#44658,感谢Paul Carduner提供的补丁。

0.19.1

  • 应用了修改WSGI脚本生成的修复。上一个版本没有正常工作。

0.19

  • 当再次运行非最新版本的设置时,配方将不再更新Subversion检出。感谢vinilios提供的补丁。

  • WSGI和FCGI脚本现在使用Buildout自己的系统生成。这使得它们在路径设置方面与生成的管理脚本更相似。感谢Jannis Leidel提供的补丁。

0.18

  • 来自eggs和extra-paths的路径现在优先于默认系统路径(修复#370420)。感谢Horst Gutmann提供的补丁。

  • 现在生成的WSGI脚本如果存在则使用python选项。这修复了#361695。

0.17.4

  • 修复了非详细模式运行时的问题(修复#375151)。

0.17.3

  • 由于setuptools_bzr似乎没有按预期工作,因此已移除对它的依赖。

0.17.2

  • 将下载代码更改为使用urllib2。这应该使得它可以从代理服务器后面工作(修复#362822)。感谢pauld提供的补丁。

0.17.1

  • 修复了新的WSGI日志选项问题#348797。感谢Bertrand Mathieu提供的补丁。

  • 如果没有设置“wsgilog”,则禁用生成WSGI日志,感谢Jacob Kaplan-Moss提供的补丁。

  • 更新了buildout.cfg和.bzrignore,感谢Jacob Kaplan-Moss。

0.17

  • 添加了一个选项,用于从WSGI脚本输出重定向到指定日志文件。感谢Guido Wesdorp提供的补丁。

0.16

  • 现在支持Subversion别名(例如svn+mystuff://myjunk)。感谢Remco提供的补丁。

0.15.2

  • 更新将pth文件查找器从__init__方法移至install方法,以便它在buildout顺序中运行,否则它会在可能尚不存在的目录中查找pth文件。感谢Chris Shenton对其原始补丁的更新。

0.15.1

  • 更新以更好地记录之前添加的pth-files选项。

0.15

  • 添加了“pth-files”选项,以从site.pth文件添加库到extra-paths。感谢Chris Shenton提供的补丁。

0.14

  • 该配方现在支持创建FCGI脚本。感谢Jannis Leidel提供的补丁。

  • 首次下载Django配方时,配方现在正确报告下载的URL。

0.13

  • 现在在subversion URL中指定用户名可以正常工作。已更新确定修订版本的代码。这修复了问题#274004。感谢Remco提供的补丁。

  • 更新了创建新项目的模板。现在它在生成其urls.py文件时使用当前管理系统。这修复了问题#276255。感谢Roland提供的补丁。

0.12.1

  • 重新上传,因为CHANGES.txt缺失。

0.12

  • 配方不再执行subversion以确定是否使用subversion下载版本。这修复了问题#271145。感谢Kapil Thangavelu提供的补丁。

  • 将pythonpath选项更改为extra-paths。这使得配方与其他配方更一致(见问题#270908)。

0.11

  • 通过确保始终调用update方法来解决更新问题(#250811),在先前版本中,由于配方将随机密钥(如果未指定)写入选项以用于模板,因此不会调用它。Buildout将其视为选项更改,因此始终决定卸载并安装。

  • 当指定projectegg和wsgi=True时,生成的WSGI文件中没有正确的设置文件。这已通过Dan Fairs的补丁修复。

  • 配方现在具有日志记录功能。所有打印语句都已替换,并添加了一些额外的日志调用。这使得配方在执行长时间运行的任务时更具信息性。感谢erny提供的补丁,该补丁来自问题#260628。

0.10

  • 配方不再期望发布tar包的顶级目录名称与版本号一致。这修复了问题#260097。感谢erny报告此问题并提出解决方案。

  • 现在,在重新运行 buildout 时,svn checkout 的修订版引脚会保持固定。这解决了问题 #250811。感谢 Remco 报告此问题。

  • 增加了一个选项,可以指定用作项目的 egg。这将禁用创建基本项目结构的代码。感谢 Dan Fairs 从问题 #252647 中的补丁。

0.9.1

  • 修复了由于缺少清单文件而损坏的先前版本

0.9

  • 设置选项已修复,以支持任意深度的设置路径(例如;conf.customer.development)。

  • 版本参数现在也接受完整的 svn url。您可以使用它来获取分支或使用标准的 svn @ 语法将任何 URL 定位到特定修订

  • WSGI 脚本不再由运行 buildout 的用户设置为可执行和可读。这避免了部署问题。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

cykooz.djangorecipe-1.2.1.tar.gz (20.6 kB 查看哈希值)

上传时间 源代码

由支持