@app.route('/view', methods=['GET', 'POST'])
def view_notifications():
posts = get_notifications()
return render_template("frontend/src/view_notifications.html", posts=posts)
Donc dans mon project/backend/src/app.py
il y a ce code. Comment pourrais-je référencer le modèle qui est dans project/frontend/src/view_notifications.html
J'ai essayé d'utiliser ..
mais il continue de dire que le chemin n'est pas trouvé. Existe-t-il une autre façon de procéder?
[Tue Jun 23 12:56:02.597207 2015] [wsgi:error] [pid 2736:tid 140166294406912] [remote 10.0.2.2:248] TemplateNotFound: frontend/src/view_notifications.html
[Tue Jun 23 12:56:05.508462 2015] [mpm_event:notice] [pid 2734:tid 140166614526016] AH00491: caught SIGTERM, shutting down
Flask cherche dans templates/frontend/src/view_notifications.html
pour votre fichier modèle. Vous devez soit déplacer votre fichier de modèles vers cet emplacement, soit modifier le dossier de modèles par défaut.
Selon les documents Flask, vous pouvez spécifier un dossier différent pour vos modèles. Par défaut, il est templates/
à la racine de votre application:
import os
from flask import Flask
template_dir = os.path.abspath('../../frontend/src')
app = Flask(__name__, template_folder=template_dir)
MISE À JOUR:
Après l'avoir testé moi-même sur une machine Windows, le dossier des modèles doit être nommé templates
. Voici le code que j'ai utilisé:
import os
from flask import Flask, render_template
template_dir = os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
template_dir = os.path.join(template_dir, 'frontend')
template_dir = os.path.join(template_dir, 'templates')
# hard coded absolute path for testing purposes
working = 'C:\Python34\pro\\frontend\\templates'
print(working == template_dir)
app = Flask(__name__, template_folder=template_dir)
@app.route("/")
def hello():
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
Avec cette structure:
|-pro
|- backend
|- app.py
|- frontend
|- templates
|- index.html
Modification d'une instance de 'templates'
à 'src'
et renommer le dossier des modèles en 'src'
a provoqué la même erreur OP reçue.