我对 Django 和 Angular 都很陌生。我承认这是主观的,可能有很多方法可以做到这一点,但我想知道人们可以推荐哪些最佳实践来布置这样的应用程序。我特别考虑了后端主要或完全是 RESTful API 服务器的丰富 SPA 的情况,但是我想为任何提供来自 Django 的重要视图的应用程序提供一种通用方法。(我还没有做足够的事情来决定后者是否值得使用 Angular,或者可能比它的价值更麻烦)。
具体来说:
在与后端不同的目录/存储库中维护前端代码与在 Django 应用程序的“静态”子目录中维护前端代码的优点/缺点是什么?就我而言,我现在是唯一的开发人员,这对这个决定有一些影响,但我仍然可以认为自己是后端、前端、设计师等独立的“团队”,因为我的工作流程将一次让我担任这些角色之一。
我的设置基本上是一台开发机器,GitHub 中的 SCM,并在 WebFaction(共享网络托管)上公开托管。我会想轻松地在不同的开发机器上抓取项目,但主要的工作流程只是一个开发,一个产品安装。也就是说,我对实际项目中的最佳实践很感兴趣,因为我希望未来的工作可能会与 Django 一起工作。
补充:我非常不确定的另一点是 Angular 应用程序是否应该/必须由 Django 引导。也就是说,首页是否应该由 Django 提供并注入任何数据?
优点:
- 可以配置从开发更改为生产的 URL 路径甚至 API 端点,无需任何备用配置,也无需在前端硬编码。
- 这可能是身份验证所必需的?我不清楚我还没有这样做......
- 允许使用 Django 调试工具栏应用等工具。
缺点:
- 将前端耦合到后端。如果我想换掉后者怎么办?如果我希望前端在带有模拟数据的沙箱中工作怎么办?
- 似乎强烈支持将所有Angular 的东西移动到 Django 应用程序布局中。同时,我不喜欢在一个地方混合 Angular 部分,而在另一个地方混合 Django 模板。我已经下定决心不要混合 NG 和 DJ 模板,因为我不相信这会有什么好处。