跳转到主要内容

为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:applicationgunicorn 脚本会将当前工作目录设置为 path/to/a 并使用 wsgi:application 作为应用程序参数。

  • auto。该配方将自动生成一个使用提供的 settingslog-filelog-levelwsgi 模块,gunicorn 脚本将引用该模块。

测试选项

runner

从版本 1.3 开始替换 `nose` 选项

如果您使用 nose(因此 django_nose)来测试您的 Django 应用或项目,请使用此选项。这将简单地包括 django_nosenose 在您的 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-dirstemplate,则配方将使用正在使用的 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 目录

  1. /my/other/template/dir

  2. /my/project/template/directory2

  3. /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 (21.1 kB 查看哈希值

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面