2014-02-18 102 views
8

我是相当新的都Django和角度。我认识到这是主观的,可能有很多方法可以做到,但我想知道人们可以推荐哪些最佳实践来布置这样的应用程序。我特别想到富人SPA的情况,后端主要还是完全是一个RESTful API服务器,但是我想为所有从Django提供重要视图的应用程序采用通用的方法。 (我还没有做足够的事情来决定后者是否使用Angular或者可能比它的价值更麻烦)。最佳实践应用程式

具体做法是:

什么是从后端对,比如说保持前端代码在一个单独的目录/仓库,Django的应用程序的“静态”子目录中的优点/缺点?就我而言,我是现在唯一的开发人员,这对这个决定有一定的影响,但我仍然可以认为自己是后端,前端,设计师等的独立“团队”,因为我的工作流程将会一次让我参加这些角色之一。

我的设置基本上是一个开发机,SCM在GitHub上,并在WebFaction(共享虚拟主机)公开举行。我希望能够轻松地在不同的开发机器上抓取项目,但主要工作流程仅仅是一个开发人员,一个产品安装。也就是说,我对真实项目中的最佳实践感兴趣,因为我希望今后的工作可能与Django合作。

ADDED:我很不确定的另一点是Angular应用程序是否应该/必须由Django引导。也就是说,是否应该由Django提供头版并注入任何数据?

优点:

  • 可以配置URL路径和从开发变为生产甚至API端点,而没有任何可替换的配置和在没有这些被硬编码在前端。
  • 这可能是认证所必需的吗?我不清楚已经没有这样做还...
  • 允许使用像Django的调试工具栏应用程序的工具。

缺点:

  • 全部前端到后端。如果我想换掉后者呢?如果我希望前端在模拟数据的沙箱中工作,该怎么办?
  • 似乎非常有利于移动所有角的东西到Django应用程序的布局。同时,我不喜欢在一个地方混合使用Angular部分,而在另一个地方使用Django模板。我已经决定不要将NG和DJ模板混合在一起,因为我不相信这会带来太好的结果。

回答

2

我也是作为独立开发人员在Django上担任的,因为他们是AngularJS FE。我已经把AngularJS文件放在静态文件夹中,一切都很好。

缺点肯定是你有FE和在一个项目混在一起,但我认为不应该的问题,因为你是个人开发者。即使你决定聘请额外的开发人员(分解FE和BE工作),你的工作也不会有任何冲突,因为你们中的一个人完全独立工作。

其中的利弊,我绝对是我通过做Django的整个登录过程(模板也一样),一旦登录了罚款I服了FE(整个AngularJS部分)的其余部分。

对于Django REST我使用了TastyPie。 Django的REST增强功能非常好,而且易于设置。

+0

谢谢Slaven。我想知道,你的意思是通过Django应用程序中的Angular应用程序来促进通过Django进行登录过程,还是说这两个框架非常合适?如果前者,我不清楚为什么会这样。 –

+1

不,整个登录过程是通过Django完成的(根本没有AngularJS),如果用户登录,我服务于FE应用程序(例如,是AngularJS应用程序的index.html)。顺便说一句,我看到你提到:“我已经解决了不混合NG和DJ模板”,除了登录屏幕,你不会有任何Django模板,如果你喜欢,你也可以删除它。如果你打算使用AngularJS作为FE,那么应该在那里完成所有工作,并且只对REST API使用Django。 (我欺骗了一下,并用它来登录过程以及) –

+0

啊,我想我遵循。 index.html这里是一个静态文件,还是一个Django视图?我饶有兴趣地说,当用户将任何URL加入应用程序时,Django基本上将它们路由到登录页面,除非它们已经登录,而Angular应用程序基本上不会“知道”这个。正确? –