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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d71e85428fe5b757fd2982c17c3576da40aa8186d384601344d4a0f168f453e1 |
|
MD5 | 9a3309b6cdb4b8199049923280dd74e0 |
|
BLAKE2b-256 | 60a62a6640aea4ea0c12d3128d6a604f9f4d75f9ba7534cc2ef2f228d2d235ec |