cookiecutter

gitee:

https://gitee.com/luzhenxiong/docs-cookiecutter

hooks

https://cookiecutter.readthedocs.io/en/latest/advanced/hooks.html

post_gen_project.py

cookiecutter-django: 根据选项移除相关文件, 例如 use_drf: n

调用了移除drf文件的函数

def remove_drf_starter_files():
    os.remove(os.path.join("config", "api_router.py"))
    shutil.rmtree(os.path.join("{{cookiecutter.project_slug}}", "users", "api"))
    os.remove(os.path.join("{{cookiecutter.project_slug}}", "users", "tests", "test_drf_urls.py"))
    os.remove(os.path.join("{{cookiecutter.project_slug}}", "users", "tests", "test_drf_views.py"))
    os.remove(os.path.join("{{cookiecutter.project_slug}}", "users", "tests", "test_swagger.py"))

一个仓库包含多个cookiecutter模板

https://cookiecutter.readthedocs.io/en/stable/advanced/directories.html

应用场景:

cookiecutter-go-zero-api存放了两个模板

根目录的cookiecutter.json: looklook的单体应用架构

looklook目录的cookiecutter.json: looklook的微服务应用架构

我的cookiecutter项目

积累的解决方案应该跟BOSS直聘的招聘要求紧密结合