微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

典型的Angular.js工作流和项目结构(使用Python Flask)

我对这个整个MV *客户端框架疯狂很新。它不一定是Angular.js,但我选择它,因为它觉得比Knockout,Ember或Backbone更自然。反正什么是工作流呢?人们开始在Angular.js中开发一个客户端应用程序,然后将后端连接到它?
或者相反,首先在Django,Flask,Rails中构建后端,然后附加一个Angular.js应用程序呢?有没有一个“正确”的方式做,或者它只是一个个人喜好到底?

我也不确定是否根据Flask或Angular.js来构造我的项目?社区实践。

例如,Flask的minitwit应用程序的结构如下:

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

Angular.js教程应用程序的结构如下:

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

我可以自己画一个Flask应用程序,它很容易看到Angular.js应用程序像Todo List本身,但是当涉及到使用这两种技术,我不明白他们如何在一起工作。当你已经有Angular.js时,看起来我不需要一个服务器端的web框架,一个简单的Python web服务器就足够了。在Angular to-do应用中,他们使用MongoLab使用Restful API与数据库通信。没有在后端有一个web框架。

也许我很困惑,Angular.js只是一个花哨的jQuery库,所以我应该使用,就像我会在我的Flask项目中使用jQuery(假设我改变Angular的模板语法为不与Jinja2冲突的东西) 。我希望我的问题有一些意义。我主要工作在后端,这个客户端框架对我来说是一个未知的领域。

我将开始在标准结构中组织Flask应用程序如下:
app
|-- app.py
|-- static
    |-- css
    |-- img
    |-- js
|-- templates

正如btford所说,如果你正在做一个Angular应用程序,你将需要专注于使用Angular客户端模板,并远离服务器端模板。使用render_template(‘index.html’)将导致Flask将你的角模板解释为jinja模板,所以它们不会正确渲染。相反,您需要执行以下操作:

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

注意,使用send_file()意味着文件将被缓存,所以你可能想使用make_response()代替,至少对于开发:

return make_response(open('templates/index.html').read())

然后,构建您的应用程序的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以及任何其他文件

<script src="static/lib/angular/angular.js"></script>

此时,您尚未构建RESTful API,因此您可以让您的js控制器返回预定义的样本数据(只有临时设置)。当你准备好了,实现RESTful API和使用angular-resource.js挂钩到你的角度应用程序。

编辑:我把一个应用程序模板,虽然有点复杂,我上面描述,说明了如何使用AngularJS Flask构建应用程序,完成AngularJS和一个简单的Flask API之间的通信。这里是如果你想检查出:https://github.com/rxl/angular-flask

原文地址:https://www.jb51.cc/angularjs/147716.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐