È necessario creare i file del modello nella posizione corretta; nella templates
sottodirectory accanto al tuo modulo python.
L'errore indica che non è presente alcun home.html
file nella templates/
directory. Assicurati di aver creato quella directory nella stessa directory del tuo modulo python e di aver effettivamente messo un home.html
file in quella sottodirectory. Se la tua app è un pacchetto, la cartella dei modelli dovrebbe essere creata all'interno del pacchetto.
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
In alternativa, se hai chiamato la cartella dei modelli in modo diverso da templates
e non vuoi rinominarla come predefinita, puoi dire a Flask di usare l'altra directory.
app = Flask(__name__, template_folder='template') # still relative to module
Puoi chiedere a Flask di spiegare come ha cercato di trovare un determinato modello, impostando l' EXPLAIN_TEMPLATE_LOADING
opzione su True
. Per ogni modello caricato, riceverai un rapporto registrato nel Flaskapp.logger
, a livello INFO
.
Ecco come appare quando una ricerca ha esito positivo; in questo esempio il foo/bar.html
template estende il base.html
template, quindi ci sono due ricerche:
[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')
I blueprint possono anche registrare le proprie directory di modelli , ma questo non è un requisito se si utilizzano blueprint per rendere più semplice la suddivisione di un progetto più grande in unità logiche. La directory principale dei modelli di app Flask viene sempre cercata per prima anche quando si utilizzano percorsi aggiuntivi per progetto.
template_folder
percorso per blueprint .