Vous devez créer vos fichiers de modèle à l'emplacement correct; dans le templates
sous - répertoire à côté de votre module python.
L'erreur indique qu'il n'y a pas de home.html
fichier dans le templates/
répertoire. Assurez-vous que vous avez créé ce répertoire dans le même répertoire que votre module python, et que vous avez en fait placé un home.html
fichier dans ce sous-répertoire. Si votre application est un package, le dossier des modèles doit être créé à l' intérieur du package.
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
Sinon, si vous avez nommé votre dossier de modèles autrement que templates
et que vous ne souhaitez pas le renommer par défaut, vous pouvez indiquer à Flask d'utiliser cet autre répertoire.
app = Flask(__name__, template_folder='template') # still relative to module
Vous pouvez demander à Flask d'expliquer comment il a essayé de trouver un modèle donné, en définissant l' EXPLAIN_TEMPLATE_LOADING
option sur True
. Pour chaque modèle chargé, vous obtiendrez un rapport enregistré dans le Flaskapp.logger
, au niveau INFO
.
Voici à quoi cela ressemble lorsqu'une recherche est réussie; dans cet exemple, le foo/bar.html
modèle étend le base.html
modèle, il y a donc deux recherches:
[2019-06-15 16:03:39,197] INFO in debughelpers: Locating template "foo/bar.html":
1: trying loader of application "flaskpackagename"
class: jinja2.loaders.FileSystemLoader
encoding: 'utf-8'
followlinks: False
searchpath:
- /.../project/flaskpackagename/templates
-> found ('/.../project/flaskpackagename/templates/foo/bar.html')
[2019-06-15 16:03:39,203] INFO in debughelpers: Locating template "base.html":
1: trying loader of application "flaskpackagename"
class: jinja2.loaders.FileSystemLoader
encoding: 'utf-8'
followlinks: False
searchpath:
- /.../project/flaskpackagename/templates
-> found ('/.../project/flaskpackagename/templates/base.html')
Les Blueprints peuvent également enregistrer leurs propres répertoires de modèles , mais ce n'est pas obligatoire si vous utilisez des Blueprints pour faciliter la division d'un projet plus important en unités logiques. Le répertoire principal du modèle d'application Flask est toujours recherché en premier, même lorsque vous utilisez des chemins supplémentaires par plan.
template_folder
chemin par Blueprint .