典型的AngularJS工作流程和项目结构(使用Python Flask)

11 浏览
0 Comments

典型的AngularJS工作流程和项目结构(使用Python Flask)

我对这种MV*客户端框架疯狂的做法还是比较新的。它不一定非得是AngularJS,但我选择它是因为它对我来说比Knockout、Ember或Backbone更自然。无论如何,工作流程是怎样的呢?人们是先开发AngularJS的客户端应用,然后再连接到后端吗?还是先在Django、Flask、Rails中构建后端,然后再附加一个AngularJS应用?这有没有一个“正确”的方式,或者最终只是个人偏好?\n我也不确定应该按照Flask还是AngularJS的社区实践来组织我的项目。\n例如,Flask的minitwit应用的结构如下:\n

minitwit
|-- minitwit.py
|-- static
   |-- css, js, images, etc...
`-- templates
   |-- html files and base layout

\nAngularJS教程应用的结构如下:\n

angular-phonecat
|-- app
    `-- css
    `-- img
    `-- js
    `-- lib
    `-- partials
    `-- index.html
|-- scripts
 `-- node.js server and test server files

\n我可以想象一个单独的Flask应用,也很容易看出一个单独的AngularJS应用,比如ToDo List,但是当涉及到同时使用这两种技术时,我不理解它们是如何一起工作的。似乎当你已经拥有AngularJS时,就不需要一个服务器端的Web框架了,一个简单的Python Web服务器就足够了。例如,在AngularJS的待办事项应用中,他们使用MongoLab通过Restful API与数据库进行通信。在后端没有使用Web框架的情况下也是可以的。\n也许我只是非常困惑,而AngularJS只是一个花哨的jQuery库,所以我应该像在我的Flask项目中使用jQuery一样使用它(假设我将AngularJS的模板语法更改为不与Jinja2冲突的语法)。希望我的问题有些道理。我主要在后端工作,这个客户端框架对我来说是一个未知领域。

0
0 Comments

Typical AngularJS workflow and project structure (with Python Flask)

问题的出现原因:

在使用Python Flask框架开发AngularJS项目时,可能会遇到工作流程和项目结构的问题。由于AngularJS和Flask是两种不同的技术,因此需要一种合理的方式来组织和管理项目,以确保高效的开发流程和良好的项目结构。

解决方法:

以下是典型的AngularJS工作流程和项目结构(使用Python Flask)的示例:

1. 创建Flask项目文件夹:

   /myapp
       /static
           /js
               app.js
               controllers.js
               services.js
           /css
               style.css
       /templates
           index.html
   

2. 在app.js中定义AngularJS应用程序:

   var app = angular.module('myApp', []);
   

3. 在controllers.js中定义AngularJS控制器:

   app.controller('myCtrl', function($scope, $http) {
       // controller logic here
   });
   

4. 在services.js中定义AngularJS服务:

   app.service('myService', function($http) {
       // service logic here
   });
   

5. 在index.html中引入所需的资源文件:

   
   
       
   
   
       
       
       
       
   
   
   

通过以上步骤,我们可以建立一个典型的AngularJS项目结构,并且将其与Python Flask框架集成。这样做的好处是可以将前端和后端代码分离,提高开发效率和代码可维护性。

参考链接:[Typical AngularJS workflow and project structure (with Python Flask)](http://www.youtube.com/watch?v=2geC50roans)

0
0 Comments

AngularJS是一个针对AJAX类型应用程序的框架,而Flask则提供了创建传统Web应用程序和创建RESTful API的能力。这两种方法各有优劣,具体取决于用户的需求。如果用户能提供更多信息,可能会有更多的建议。

如果用户想使用Flask来提供文件服务(可能有些过度),可以将"angular-phonecat"中的"app"文件夹的内容复制到"minitwit"的"static"文件夹中。此外,应避免将服务器端模板与AngularJS客户端模板混合使用。

此外,还可以使用Flask-Restless和Flask-SQLAlchemy来更轻松地生成JSON API。

将"angular-phonecat"中的"app"文件夹放在"static"文件夹中,将index.html文件放在minitwit的模板文件夹中,将css和img文件夹移动到"static"文件夹中,可以解决该问题。

0
0 Comments

Typical AngularJS workflow and project structure (with Python Flask)

在使用AngularJS和Python Flask进行项目开发时,有一些常见的问题需要解决。本文将介绍这些问题的出现原因以及解决方法。

问题1:使用render_template('index.html')会导致Flask错误地解释Angular模板,从而导致无法正确渲染。

解决方法:使用send_file()函数来发送静态文件,这样可以避免Flask解释Angular模板。在开发过程中,可以使用make_response()函数代替send_file(),因为send_file()会缓存文件。以下是示例代码:

@app.route("/")
def index():
    return send_file('templates/index.html')

问题2:如何构建AngularJS部分并与Flask应用程序连接?

解决方法:首先,需要组织Flask应用程序的结构。按照以下标准结构组织Flask应用程序:

app
|-- app.py
|-- static
    |-- css
    |-- img
    |-- js
|-- templates

然后,构建AngularJS部分,并修改应用程序结构,使其如下所示:

app
|-- app.py
|-- static
    |-- css
    |-- img
    |-- js
        |-- app.js, controllers.js, etc.
    |-- lib
        |-- angular
            |-- angular.js, etc.
    |-- partials
|-- templates
    |-- index.html

确保在index.html中引入AngularJS以及其他文件:


问题3:如何处理构建和使用grunt?

解决方法:在本文中没有介绍grunt,因为它会使事情变得更加复杂。如果准备使用grunt,可以将前端代码放在一个单独的存储库中,然后将所有内容打包在一起,将其复制粘贴到Flask存储库中或推送到CDN,并从index.html中引用。

问题4:如何处理ng-include中的模板?

解决方法:Angular模板被称为partials。如果在ng-include中使用任何模板,建议将它们放在partials文件夹中。

问题5:为什么使用Flask来提供Angular的HTML文件,而不是直接通过服务器提供?

解决方法:使用Flask来提供Angular的HTML文件可以更好地控制路由和处理,同时可以利用Flask的其他功能。

问题6:make_response和send_static_file之间有什么区别?

解决方法:make_response和send_static_file函数可以实现类似的结果,但它们使用的方法不同。make_response用于创建一个响应对象,可以对其进行更多的自定义操作。send_static_file函数用于发送静态文件。在开发过程中,建议使用make_response函数。

通过解决以上问题,可以实现一个典型的AngularJS工作流和项目结构,同时结合Python Flask进行开发。

0