跳槽及毕设Django高级实战 开发企业级问答网站 CookieCutter的使用 学习笔记
CookieCutter的使用
原文档地址:https://cookiecutter.readthedocs.io/en/latest/
视频地址: https://study.163.com/course/introduction/1209407824.htm?share=2&shareId=400000000535031
使用上面的链接地址进入,联系QQ 1064468942 可获得 30元 学费退还 喔
本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分。深度使用及了解更多详情请请参考原文档。
关于Cookiecutter的中文译名,我不知道别人怎么翻译的,我将其翻译为饼干制造机。本系列中将不对其作翻译,直接使用英文原名。
Cookiecutter简介
Cookiecutter 是一个通过项目模板创建项目的命令行工具。比如,通过Python Package模板来创建Python package项目。(通过Python代码调用Cookiecutter的API可以扩展为自动化创建服务和带有Web UI的服务程序)
功能特点
- 跨平台:官方支持Windows、Mac和Linux
- 可以在Python 2.7, 3.4, 3.5, 3.6, and PyPy.环境中正常使用(此处指的是Cookiecutter的运行环境,而不是你项目的运行环境。使用Cookiecutter不需要你懂得编写Python代码)
- 项目模板可以是任何编程语言或标记格式:Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML等任何你能叫出名字的。你也可以在同一个项目模板中使用多种语言。
- 命令行的简单使用:
# 从cookiecutter-pypackage.git模板创建项目
# 你将会被提示输入相应的值。
# 然后Cookiecutter将基于你的输入在当前工作目录中创建Python包
$ cookiecutter https://github.com/audreyr/cookiecutter-pypackage
# 为了简洁起见,repos在GitHub上可以只使用“gh”前缀
$ cookiecutter gh:audreyr/cookiecutter-pypackage
- 在命令行中使用本地模板:
# 从本地在当前目录创建项目
# cookiecutter-pypackage/ template
$ cookiecutter cookiecutter-pypackage/
- 目录名和文件名可以模板化。例如:
{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}.py
- 支持无限层级的目录嵌套。
- 文件和目录名称100%使用Jinja2完成模板化。
- 只需在·cookiecutter.json·文件中定义模板变量即可。 例如:
{
"full_name": "Tacey Wong",
"email": "[email protected]",
"project_name": "Complexity",
"repo_name": "complexity",
"project_short_description": "令人耳目一新的简单的静态网站生成器.",
"release_date": "2019-03-10",
"year": "2019",
"version": "0.0.1"
}
- 没有你用·--no-input·来禁止,系统会提示你输入:
cookiecutter.json
中键/key对应的值/value。cookiecutter.json
中的缺省值- 提示符按顺序显示
- 跨平台支持
~/.cookiecutterrc
文件:
default_context:
full_name: "Tacey Wong"
email: "[email protected]"
github_username: "taceywong"
cookiecutters_dir: "~/.cookiecutters/"
- 克隆的Cookiecutter项目模板会缺省放置在
~/.cookiecutters/
目录下,如果特殊指定,会放置在cookiecutters_dir
对应的目录下:
# 克隆cookiecutter-pypackage
$ cookiecutter gh:audreyr/cookiecutter-pypackage
# 现在你可以根据名字使用对应的模板
$ cookiecutter cookiecutter-pypackage
- 您可以使用你本地模板、远程Git repos
- 默认上下文:指定在生成项目时要用作默认值的键/值对
- 用命令行参数注入额外的上下文:
$ cookiecutter --no-input gh:msabramo/cookiecutter-supervisor program_name=foobar startsecs=10
- 直接访问Cookiecutter API允许注入额外的上下文。
- 预生成和后生成挂钩/hook:在生成项目之前或之后运行的Python或shell脚本。
- 本地项目的路径可以指定为绝对路径或相对路径。
- 项目始终生成到当前目录。
可用的Cookiecutter模板
现在在已经有很多开源的Cookiecutter 项目模板可供选择。
特定的Cookiecutter模板
这些模板由cookiecutter官方团队进行维护:
- cookiecutter-pypackage:@audreyr终极Python包项目模板。
- cookiecutter-django: 一个具有Bootstrap 4、可定制用户应用程序、启动器模板、用户注册、celery设置等功能的Django项目模板。
- cookiecutter-pytest-plugin: 编写pytest插件的最小Cookiecutter模板,帮助你编写更好的程序。
Cookiecutter模板分类
社区驱动的各类Cookiecutter模板(非Cookiecutter官方维护