我已经开始使用cookiecutter来生成项目树骨架,并且已经遇到了我似乎找不到答案的“简单”用例。
我在cookiecutter.json中有一个嵌套的字典,类似于:https://cookiecutter.readthedocs.io/en/latest/advanced/dict_variables.html我想遍历字典中的项目并呈现每个项目的属性。
但是,我的用例说字典中的每个元素都是一个不同的文件,并且模板化的输出文件应使用项目的内容呈现。
例如,如果我有:
{
"apiname": "API host root",
"project_slug": "repo/context name",
"context" : "context name",
"full_name": "Your name",
"email": "Your address email (eq. you@example.com)",
"release_date": "{% now 'local' %}",
"version": "0.1.0",
"_extensions": ["jinja2_time.TimeExtension"],
"entities" : {
"customer" : {
"id" : {"name": "customer", "search_types" : ["eq"]},
"name" : {"put_required" : "False"}
},
"order" : {
"id" : {"name": "order", "search_types" : ["eq"]},
"po" : {"put_required" : "True"}
}
}
}
并包含一个名为(大约){{cookiecutter.entities [key] .name}}。txt的模板文件:
{{cookiecutter.entities[key].put_required}}
我想要的输出是2个文件,名为:
customer.txt
order.txt
使用正确文件中呈现的每个项目的适当内容(在这种情况下,只有一个孤独字段中的put_required属性)。
我觉得这是一个钩子/脚本用例,用于在实际运行cookiecutter之前生成具有模板名称的模板文件(这样,在模板目录中“临时”创建了customer.txt和order.txt输出,然后运行渲染器。
当前,我仍在命令行中使用cookiecutter,但如果需要这样做,我很乐意直接切换到python api。