我在客户端使用flask作为后端和angularjs
我的目录结构:
露点:
->app.py
->templates
->hello.html
->test.html
->static
->js
->directives.py
->lib
->angular.js
我的app.py文件:
from flask import Flask, make_response,render_template
@app.route("/aboutUs")
def aboutUs():
return render_template("test.html", title="test page")
我的directives.py文件:
angular.module('components',[])
.directive("helloWorld",function($scope,$log){
$scope.$log = $log;
return{
restrict:"A",
templateUrl:"templates/hello.html"
}
})
angular.module('testApp',['components'])
Flask能够正确渲染test.html模板,但angular显示了hello.html,找不到模板错误
答案 0 :(得分:9)
如果hello.html
包含Jinja2标记,则它是一个模板,需要由Flask呈现。添加@app.route
进行渲染。
@app.route("/hello")
def hello():
return render_template("hello.html")
然后指向Angular指令中的hello
URL。
templateUrl: "{{ url_for('hello'}} }}"
如果文件只包含HTML(没有Jinja2标记),那么它不是模板。它不应该在templates
文件夹中,而应该在静态文件夹中; ;比如static/angular_templates/hello.html
。
然后指向指令中的静态文件。
templateUrl: "{{ url_for('static', filename='angular_templates/hello.html') }}"