我是相当新的都Django和角度。我认识到这是主观的,可能有很多方法可以做到,但我想知道人们可以推荐哪些最佳实践来布置这样的应用程序。我特别想到富人SPA的情况,后端主要还是完全是一个RESTful API服务器,但是我想为所有从Django提供重要视图的应用程序采用通用的方法。 (我还没有做足够的事情来决定后者是否使用Angular或者可能比它的价值更麻烦)。最佳实践应用程式
具体做法是:
什么是从后端对,比如说保持前端代码在一个单独的目录/仓库,Django的应用程序的“静态”子目录中的优点/缺点?就我而言,我是现在唯一的开发人员,这对这个决定有一定的影响,但我仍然可以认为自己是后端,前端,设计师等的独立“团队”,因为我的工作流程将会一次让我参加这些角色之一。
我的设置基本上是一个开发机,SCM在GitHub上,并在WebFaction(共享虚拟主机)公开举行。我希望能够轻松地在不同的开发机器上抓取项目,但主要工作流程仅仅是一个开发人员,一个产品安装。也就是说,我对真实项目中的最佳实践感兴趣,因为我希望今后的工作可能与Django合作。
ADDED:我很不确定的另一点是Angular应用程序是否应该/必须由Django引导。也就是说,是否应该由Django提供头版并注入任何数据?
优点:
- 可以配置URL路径和从开发变为生产甚至API端点,而没有任何可替换的配置和在没有这些被硬编码在前端。
- 这可能是认证所必需的吗?我不清楚已经没有这样做还...
- 允许使用像Django的调试工具栏应用程序的工具。
缺点:
- 全部前端到后端。如果我想换掉后者呢?如果我希望前端在模拟数据的沙箱中工作,该怎么办?
- 似乎非常有利于移动所有角的东西到Django应用程序的布局。同时,我不喜欢在一个地方混合使用Angular部分,而在另一个地方使用Django模板。我已经决定不要将NG和DJ模板混合在一起,因为我不相信这会带来太好的结果。
谢谢Slaven。我想知道,你的意思是通过Django应用程序中的Angular应用程序来促进通过Django进行登录过程,还是说这两个框架非常合适?如果前者,我不清楚为什么会这样。 –
不,整个登录过程是通过Django完成的(根本没有AngularJS),如果用户登录,我服务于FE应用程序(例如,是AngularJS应用程序的index.html)。顺便说一句,我看到你提到:“我已经解决了不混合NG和DJ模板”,除了登录屏幕,你不会有任何Django模板,如果你喜欢,你也可以删除它。如果你打算使用AngularJS作为FE,那么应该在那里完成所有工作,并且只对REST API使用Django。 (我欺骗了一下,并用它来登录过程以及) –
啊,我想我遵循。 index.html这里是一个静态文件,还是一个Django视图?我饶有兴趣地说,当用户将任何URL加入应用程序时,Django基本上将它们路由到登录页面,除非它们已经登录,而Angular应用程序基本上不会“知道”这个。正确? –