Django - AngularJs项目结构

时间:2017-03-10 17:29:25

标签: javascript python angularjs django angular

经过研究,我还没有决定使用Django的AngularJs的最佳结构.GitHub上有很多可用的项目,并且使用Django项目静态文件夹中的角度文件在网上进行教程。下面的结构主要是与Django的角度1。

  Project Name
     app
     project name
     templates
     static
        angular_app
            app1
               app1.component.js
               app1.module.js
             app.js
         angular_templates (static templates for rendering in routes)
     manage.py    

在Angular 2中,我们必须使用节点服务器,并且大多数情况下,我看到经验丰富的角度开发人员也使用其他后端技术,他们使用此结构

  AngularJs Project
      app1
         app1.component.js
         app1.module.js
       angular_templates (static templates for rendering in routes)
       app.js

  Django Project ( or any other backend project)
     app
     project name
     templates
     static
     manage.py

此项目结构的优势: 我们可以通过替换我们的后端项目文件夹来使用任何其他后端技术。 只有API依赖于后端项目。前端完全独立于后端。

  

所以,问题是Django-Angular项目的最佳结构是什么?如果第二个选项是好的,我们必须部署我们的角度   和Django代码分别在同一个域上?如果是的话怎么做?

2 个答案:

答案 0 :(得分:2)

如果您愿意,可以将两者结合起来。我使用Rails后端做了类似的事情,它很适合我。 (请注意,我不熟悉Django,但我认为适用相同的逻辑。)

假设Django项目中的静态文件夹将作为静态内容提供任何内容,我不建议将Angular项目包含在该文件夹中。相反,让你的Angular文件夹成为静态文件夹的兄弟文件夹。但是,配置Angular项目以将其最终输出构建到Django静态文件夹中。

因此,您的项目如下:

 Django Project ( or any other backend project)
     app
     project name
     templates
     static  (receives minified output from AngularJS project)
     manage.py
     AngularJs Project
        app1
           app1.component.js
           app1.module.js
        angular_templates (static templates for rendering in routes)
        app.js

这样做有一些好处: 1.项目或多或少是分开的 - 在进行Angular工作时,你在AngularJS文件夹中工作,否则你在Django工作的其他文件夹中工作

  1. 部署更简单 - 您构建AngularJS工件(js,css,index.html)并检查它们。然后部署Django文件夹部署所有内容

  2. 你仍然可以从AngularJS生态系统的工具中受益,因为对于所有意图,它仍然在它自己的文件夹中并被隔离。

  3. 一切都在一个回购中,这可以使源代码管理变得更加容易。

  4. 有一些缺点 - 您正在检查AngularJS构建工件,并且您的AngularJS更改与服务器端更改混合在一起,但我发现除非服务器端和客户端团队完全独立,它没有被证明是一个问题。

答案 1 :(得分:0)

最佳实践:

  1. 分离关注点。       - 每个模块/组件/控制器应独立于另一个。
  2. 发展模式       - 基于团队的角色(完整堆栈开发人员/ UI分离/后端分离。文件夹结构更改
  3. 优秀风格指南 Angular 1
  4. Angular 2
  5. 的官方风格指南