J'utilise flask comme backend et angularjs côté client
ma structure de répertoires:
rosée:
->app.py
->templates
->hello.html
->test.html
->static
->js
->directives.py
->lib
->angular.js
mon fichier app.py:
from flask import Flask, make_response,render_template
@app.route("/aboutUs")
def aboutUs():
return render_template("test.html", title="test page")
mon fichier 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 a pu rendre le modèle test.html correctement, mais angulaire montrait hello.html, erreur de modèle introuvable
Réponses:
8 pour la réponse № 11. Modèle Jinja
Si hello.html
contient le balisage Jinja2 alors c'est un modèle et doit être rendu par Flask. Ajouter un @app.route
pour le rendre.
@app.route("/hello")
def hello():
return render_template("hello.html")
Pointez ensuite sur le hello
URL dans la directive angulaire.
templateUrl: "{{ url_for("hello"}} }}"
2. Modèle angulaire
Si le fichier contient uniquement du HTML (pas de balisage Jinja2), ce n'est pas un modèle. Il ne devrait pas être templates
dossier mais dans le dossier statique; comme static/angular_templates/hello.html
.
Pointez ensuite sur le fichier statique dans la directive.
templateUrl: "{{ url_for("static", filename="angular_templates/hello.html") }}"