为django开发构建的食谱
项目描述
© 2014-2020 Thomas Khyn
为django开发构建的食谱
关于
djangorecipebook中提供的食谱大多源自djangorecipe的功能。然而,虽然djangorecipe旨在生成一个部分的所有脚本,但djangorecipebook允许您为每个脚本定义一个部分(创建、管理、wsgi、测试、makemigrations),从而允许每个部分使用不同的设置和/或egg。
通过其自动最小设置生成,djangorecipebook特别适合可重用应用程序的开发,例如用于测试或维护(迁移生成)。
djangorecipebook与django 2.2和3.0以及相关Python版本(取决于django版本,3.5到3.8)兼容。
如果您喜欢djangorecipebook并发现它很有用,您可能想通过向以下地址发送少量mBTC / mBCH / mBSV来感谢我并鼓励未来的开发:1EwENyR8RV6tMc1hsLTkPURtn5wJgaBfG9。
可用食谱
- djangorecipebook:manage
为项目创建管理脚本
- djangorecipebook:wsgi
为项目创建wsgi脚本
- djangorecipebook:gunicorn
为项目创建gunicorn服务启动器
- djangorecipebook:test
创建一个调用manage.py test [apps]或pytest的脚本
- djangorecipebook:makemigrations (新功能,v1.2)
生成Django迁移。如果您需要为Django < 1.7生成south迁移,则需要使用djangorecipe 1.2.x或1.3.x
- djangorecipebook:migrate(v1.2新增)
调用manage.py migrate [apps]。为懒人设计。
- djangorecipebook:create
根据用户定义的模板或使用django的startproject管理命令创建django项目。此配方不会生成任何脚本。创建的项目名称是节的名字。
选项
通用选项
- project-dir
项目文件所在的目录,相对于buildout.cfg目录。
默认为'.'(buildout目录)。
- settings
要加载的设置模块,从项目目录导入。
默认为'settings'或根据配方的一组最小设置。
- extra-paths
要添加到生成脚本中sys.path的路径。
默认为[]。
- envvars
任何需要在测试运行中设置的环境变量,每行一个,形式为VARIABLE = value(允许空格)。
默认不设置环境变量。
- initialization
要在生成的脚本中插入的一些(基本)python初始化代码。别忘了前导空格会被删除。
默认为''。
管理选项
- settings
如果没有提供设置模块,则设置将是一组最小参数,并添加以下安装的应用程序。
默认为最小设置。
- inst_apps
如果没有提供设置模块,要添加到INSTALLED_APPS设置的程序。此选项不应在提供设置模块时使用。
默认为''。
- command
要运行的管理命令(如果有)。
默认无命令(在这种情况下禁用args选项)。
- args
任何希望添加到生成脚本中的命令行参数,由空格或换行符分隔。
默认无参数。
WSGI和gunicorn选项
- settings
必须是一个设置模块,这些配方没有默认的最小设置。
- log-file
所有stdout和/或stderr数据应重定向到的日志文件的路径。
默认为'',禁用日志记录。
- log-level
记录错误级别。可以是INFO(stdout + stderr)或ERROR(仅stderr)。
默认为INFO。
- virtualenv
用于运行wsgi脚本的虚拟环境。这需要virtualenv 和 virtualenvwrapper,因为它依赖于WORKON_HOME环境变量。
默认为'',禁用任何虚拟环境设置。
- script_path
脚本的期望输出路径,作为相对于buildout目录(= buildout.cfg文件所在的目录)的文件名路径。
默认为buildout的bin目录,以配方名称命名。
- application(仅限wsgi和gunicorn)
与wsgi配方一起使用时,它是用户定义的wsgi应用的点路径,默认为django的get_wsgi_application()的结果。
- 与gunicorn配方一起使用时,可以是
未指定(默认),这意味着必须使用带有定义WSGI应用的参数调用gunicorn脚本
一个 path/to/a/wsgi:application。gunicorn 脚本会将当前工作目录设置为 path/to/a 并使用 wsgi:application 作为应用程序参数。
auto。该配方将自动生成一个使用提供的 settings、log-file 和 log-level 的 wsgi 模块,gunicorn 脚本将引用该模块。
测试选项
- runner
从版本 1.3 开始替换 `nose` 选项
如果您使用 nose(因此 django_nose)来测试您的 Django 应用或项目,请使用此选项。这将简单地包括 django_nose 和 nose 在您的 buildout 中。
默认未设置。
- workingdir
启动测试的工作目录。
默认为当前目录。
- args
见 管理选项。
- settings, inst_apps
见 管理选项。注意,command 选项被禁用。使用 pytest 时不可用。
- apps
应测试的应用程序名称,用空格或换行符分隔。如果使用最小设置,这些应用程序将添加到 INSTALLED_APPS(除 inst_apps 选项中的应用程序外)。
默认为 '',所有 INSTALLED_APPS 中的应用程序。使用 runner = pytest 时不可用。
Makemigrations 选项
- settings, inst_apps, args
见 管理选项。注意,command 选项被禁用。
- apps
需要生成迁移的应用程序名称,用空格或换行符分隔。如果使用最小设置,这些应用程序将添加到 INSTALLED_APPS(除 inst_apps 选项中的应用程序外)。
默认为 '',所有 INSTALLED_APPS 中的应用程序。
Migrate 选项
与 测试选项 中的选项相同。唯一不同的是,您不能使用最小设置(默认为 'settings')或 inst_apps 选项。实际上,迁移通常需要一个数据库来迁移!
Create 选项
在创建模式下,以下常用选项未使用
extra-paths
initialization
设置导入路径必须设置,因为它用于确定项目是否已创建。
以下选项被添加
- template-dirs
在其中搜索用户定义的项目模板的目录。此选项也可以添加到 [djangorecipebook] 部分(例如在默认.cfg 文件中)。见下面的 模板发现 部分。
默认为内置模板目录,包含默认的 django 项目模板。
- template
应使用的模板。
默认为使用 django 主要版本的默认 django 项目。
- secret
在创建的设置文件中使用的 SECRET_KEY。
默认为随机生成的字母数字密钥。
有关模板的更多详细信息,请参阅下面的 模板 部分。
模板
在创建模式下,可用于对 django 项目初始化进行更多自定义的模板引擎。
模板发现
如果在配方部分或特定的 djangorecipebook 部分中找到 template-dirs 选项,则配方将在这些目录中搜索与提供的 template 名称匹配的子目录 - 从最后定义的到第一个。
如果搜索失败或未定义 template-dirs 或 template,则配方将使用正在使用的 django 主版本的默认模板。
例如,如果在 ~/.buildout/default.cfg 中有如下行
[djangorecipebook] template-dirs = /my/project/template/directory /my/project/template/directory2
并且你的 buildout.cfg 包含此部分
[mynewproject] recipe = djangorecipebook:create template-dirs = /my/other/template/dir template = mytemplate
配方将按此顺序搜索 mytemplate 目录
/my/other/template/dir
/my/project/template/directory2
/my/project/template/directory
模板引擎
模板引擎尽可能简单,依赖于 python 的 string.Template。您可以使用 ${variable} 语法在模板目录中的任何文件或目录名称或文件内容中插入变量。
以下变量可用
来自配置文件的用户定义配方选项
secret:django 设置的秘密密钥
project_name:项目名称(=部分名称)
year:当前年份
month:当前月份
day:月份中的当前日
例如,如果你在 buildout.cfg 中有
[mynewproject] recipe = djangorecipebook:create template = mytemplate author = Thomas Khyn
在模块文档字符串中的版权声明,你可以使用
(c) ${year} ${author}
这将产生以下最终文件中的输出(如果我们处于 2014 年)
(c) 2014 Thomas Khyn
或者,如果你有一个名为 ${project_name}_parameters 的目录,最终名称将是 mynewproject_parameters。
项目详情
djangorecipebook-1.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2c0457fc6d747f9e28e6ae5359d618efee0d70506c38c0aa44f224342a416811 |
|
MD5 | f77b6147d937e12bc53ba64469c3ae4d |
|
BLAKE2b-256 | e717a7757a230fdb4aa10bde4e45a42bd5f92b89de75de2a3f152b5625ec5bfd |