我对这个主题进行了广泛的搜索,但结果却没有真正的结论性答案。然而,我确实遇到了潜在的解决方案和我自己的解决方案,但我不确定它们是否被完全推荐,甚至可以随着时间的推移进行维护。
所以对我的问题。让我们假设我开发了一个核心Flask应用程序,它将被用作博客引擎或定制CMS的关键部分。让我们把这个引擎MyFlaskCore称为同名。
MyFlaskCore可以作为应用程序的 核心 安装在完全独立的服务器上。让我们想象以下复杂性/大小:
|-- app
|-- blueprint_one
|-- __init__.py
|-- views.py
|-- forms.py
|-- models.py
|-- blueprint_two
|-- __init__.py
|-- views.py
|-- forms.py
|-- models.py
|-- blueprint_three
|-- __init__.py
|-- views.py
|-- forms.py
|-- models.py
|-- static
|-- main.styles.scss
|-- build
|-- main.bundle.css
|-- templates
|-- index.html
|-- orm.py
|-- database.py
|-- config.py
|-- __init__.py
这里的代码将通过Git维护。通过手动更新甚至自动更新服务的消费者可以通过git pull获得更改。虽然这对我的问题来说是多余的,但它有助于理解背景。
这是背景。
继续前进,让我们说MyFlaskCore引擎被四个不同的消费者使用。这些消费者中的每一个都使用核心引擎来为其使用提供后端服务。消费者永远不应该真正修改本地安装。
但是,每个最终消费者都将获得基本的入门模板,但这些模板旨在由每个消费者根据自己的意愿进行修改和个性化。在搜索之后,我找到了几个如何实现 的选项:
上述每个解决方案都提供了一种独特的方法,但我觉得每种解决方案都提供了独特的关注点,感觉就像是解决方法。
回顾:Core Flask应用程序,允许在用户的基础上跨安装进行各种模板实现。自定义和正确版本控制的最佳实践和权衡
据我所知,通过允许消费者修改模板,这些模板在技术上违反了版本控制,因为它们不会被完全跟踪或忽略。我可能会在这里遗漏一些明显的东西,如果这似乎是一个没有实际意义的话我真诚的道歉。
重要的是主要的应用程序代码可以连续发布,消费者可以在可用时更新,但仍然保持自己的模板设计
社区中是否有人对此问题采取更可持续的方法?我建议的解决方案的注意事项会很棒!或者即使建议这样做?替代方案也很棒!
非常感谢:)