È necessario creare i file del modello nella posizione corretta; nella templatessottodirectory accanto al tuo modulo python.
L'errore indica che non è presente alcun home.htmlfile nella templates/directory. Assicurati di aver creato quella directory nella stessa directory del tuo modulo python e di aver effettivamente messo un home.htmlfile 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 templatese 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_LOADINGopzione 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.htmltemplate estende il base.htmltemplate, 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_folderpercorso per blueprint .