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直聘的招聘要求紧密结合