Sie müssen Ihre Vorlagendateien am richtigen Speicherort erstellen. in demtemplates
Unterverzeichnis neben Ihrem Python-Modul.
Der Fehler zeigt an, dass sich keine home.html
Datei im templates/
Verzeichnis befindet. Stellen Sie sicher, dass Sie dieses Verzeichnis im selben Verzeichnis wie Ihr Python-Modul erstellt haben und dass Sie tatsächlich eine home.html
Datei in dieses Unterverzeichnis gestellt haben. Wenn Ihre App ein Paket ist, sollte der Vorlagenordner innerhalb des Pakets erstellt werden.
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
Wenn Sie Ihren Vorlagenordner anders benannt haben templates
und ihn nicht in den Standard umbenennen möchten, können Sie Flask alternativ anweisen, dieses andere Verzeichnis zu verwenden.
app = Flask(__name__, template_folder='template') # still relative to module
Sie können Flask bitten, zu erklären, wie versucht wurde, eine bestimmte Vorlage zu finden, indem Sie die EXPLAIN_TEMPLATE_LOADING
Option auf setzen True
. Für jede geladene Vorlage erhalten Sie einen Bericht, der auf Ebene der Flascheapp.logger
protokolliert wird INFO
.
So sieht es aus, wenn eine Suche erfolgreich ist. In diesem Beispiel erweitert die foo/bar.html
Vorlage die base.html
Vorlage, sodass zwei Suchvorgänge ausgeführt werden:
[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')
Blaupausen können auch ihre eigenen Vorlagenverzeichnisse registrieren. Dies ist jedoch nicht erforderlich, wenn Sie Blaupausen verwenden, um die Aufteilung eines größeren Projekts auf logische Einheiten zu vereinfachen. Das Hauptvorlagenverzeichnis der Flask-App wird immer zuerst durchsucht, auch wenn zusätzliche Pfade pro Blaupause verwendet werden.
template_folder
Pfad pro Blaupause festlegen .