10

我对 Django 和 Angular 都很陌生。我承认这是主观的,可能有很多方法可以做到这一点,但我想知道人们可以推荐哪些最佳实践来布置这样的应用程序。我特别考虑了后端主要或完全是 RESTful API 服务器的丰富 SPA 的情况,但是我想为任何提供来自 Django 的重要视图的应用程序提供一种通用方法。(我还没有做足够的事情来决定后者是否值得使用 Angular,或者可能比它的价值更麻烦)。

具体来说:

在与后端不同的目录/存储库中维护前端代码与在 Django 应用程序的“静态”子目录中维护前端代码的优点/缺点是什么?就我而言,我现在是唯一的开发人员,这对这个决定有一些影响,但我仍然可以认为自己是后端、前端、设计师等独立的“团队”,因为我的工作流程将一次让我担任这些角色之一。

我的设置基本上是一台开发机器,GitHub 中的 SCM,并在 WebFaction(共享网络托管)上公开托管。我会想轻松地在不同的开发机器上抓取项目,但主要的工作流程只是一个开发,一个产品安装。也就是说,我对实际项目中的最佳实践很感兴趣,因为我希望未来的工作可能会与 Django 一起工作。

补充:我非常不确定的另一点是 Angular 应用程序是否应该/必须由 Django 引导。也就是说,首页是否应该由 Django 提供并注入任何数据?

优点:

  • 可以配置从开发更改为生产的 URL 路径甚至 API 端点,无需任何备用配置,也无需在前端硬编码。
  • 这可能是身份验证所必需的?我不清楚我还没有这样做......
  • 允许使用 Django 调试工具栏应用等工具。

缺点:

  • 将前端耦合到后端。如果我想换掉后者怎么办?如果我希望前端在带有模拟数据的沙箱中工作怎么办?
  • 似乎强烈支持将所有Angular 的东西移动到 Django 应用程序布局中。同时,我不喜欢在一个地方混合 Angular 部分,而在另一个地方混合 Django 模板。我已经下定决心不要混合 NG 和 DJ 模板,因为我不相信这会有什么好处。
4

1 回答 1

4

我还作为 AngularJS FE 的 BE 开始作为 Django 的独立开发人员。我已将 AngularJS 文件放在静态文件夹中,一切都很好。

缺点肯定是你在一个项目中混合了 FE 和 BE,但我认为这不重要,因为你是独立开发者。即使您决定雇用其他开发人员(拆分 FE 和 BE 工作),您的工作也不会有任何冲突,因为你们中的一个人将完全独立工作。

对我来说,其中一个优点绝对是我通过 Django 完成了整个登录过程(也是模板),一旦登录成功,我就可以服务于 FE 的其余部分(整个 AngularJS 部分)。

对于 Django REST,我使用了 TastyPie。对于 Django 来说,这是一个很棒的 REST 增强功能,而且易于设置。

于 2014-02-18T13:27:22.977 回答