Musisz utworzyć pliki szablonów w prawidłowej lokalizacji; w templates
podkatalogu obok modułu Pythona.
Błąd wskazuje, że home.html
w templates/
katalogu nie ma pliku . Upewnij się, że utworzyłeś ten katalog w tym samym katalogu co moduł Pythona i że faktycznie umieściłeś home.html
plik w tym podkatalogu. Jeśli Twoja aplikacja jest pakietem, folder szablonów powinien zostać utworzony wewnątrz pakietu.
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
Alternatywnie, jeśli nadałeś folderowi szablonów inną templates
nazwę niż i nie chcesz zmieniać jego nazwy na domyślną, możesz powiedzieć Flask, aby używał tego innego katalogu.
app = Flask(__name__, template_folder='template')
Możesz poprosić Flask o wyjaśnienie, w jaki sposób próbował znaleźć dany szablon, ustawiając EXPLAIN_TEMPLATE_LOADING
opcję na True
. Dla każdego załadowanego szablonu otrzymasz raport zarejestrowany w Kolbieapp.logger
na poziomie INFO
.
Tak to wygląda, gdy wyszukiwanie się powiedzie; w tym przykładzie foo/bar.html
szablon rozszerza base.html
szablon, więc są dwa wyszukiwania:
[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')
Schematy mogą również rejestrować własne katalogi szablonów , ale nie jest to wymagane, jeśli używasz planów, aby ułatwić podzielenie większego projektu na jednostki logiczne. Główny katalog szablonów aplikacji Flask jest zawsze przeszukiwany jako pierwszy, nawet jeśli używasz dodatkowych ścieżek na schemat.
template_folder
ścieżkę dla planu .