我想在服务器端开发一个带有flask(python)的web应用程序,在客户端开发一个angularjs(javascript)。我在github上检查了/ flask-angular-seed项目,但它与/ angular-seed项目相同。它不包含对flask框架的任何支持。我是新来的烧瓶。如何使烧瓶和角度作为服务器客户端一起工作?我知道如何使用flask创建一个Web服务,我也经历了角度教程。但我很困惑如何使这两个一起工作(比如应该调用http请求以及如何接收和响应它)。
答案 0 :(得分:7)
我这样做的方法是为接口(例如/)设置一条加载主html模板的路径。然后该模板在静态文件夹中引用角度应用程序的js。
然后我为各种交互点创建路由(在我的情况下,它是rest-y),这也是角度对话。我使用一个名为restangular的角度模块来使其更容易/更清洁。我的路由返回json中的所有内容,然后可以直接使用。
我还设置了额外的路线,这样/ blah /无论什么也会路由到主界面。我忽略了路径,一旦角度js加载,路由器(以角度为单位)将查看路径并将其映射到正确的接口路径。
@app.route('/<path:path>')
@app.route('/')
def admin(path=None):
return render_template('angular_interface.html')
基本上 - 对于界面,我完全放弃了烧瓶。
编辑:文件夹方面你可能有类似的东西:
__init__.py
api
api/__init__.py
api/resources.py
api/views.py
static/interface/css/style.css
static/interface/js/app.js
static/interface/js/other_modules_etc.js
static/shared/js/angular.js
static/shared/js/restangular.js
templates/interface.html
在我的__init__.py
中,我有上述路由结构(以及Flask app内容)。
我的interface.html模板如下所示。
<html>
<head>
<title>Blah</title>
<link rel="stylesheet" href="{{ url_for('static', filename='interface/css/style.css') }}"/>
<script src="{{ url_for('static', filename='shared/js/angular.js') }}"></script>
<script src="{{ url_for('static', filename='shared/js/restangular.js') }}"></script>
<script src="{{ url_for('static', filename='interface/js/app.js') }}"></script>
</head>
<body>
{% raw %}
<div ng-app="blah" ng-cloak>
<div ng-controller="BlahCtrl" class="sidebar">
</div>
</div>
{% endraw %}
</body>
</html>