典型的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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |