Debe crear sus archivos de plantilla en la ubicación correcta; en el templatessubdirectorio junto a su módulo de Python.
El error indica que no hay ningún home.htmlarchivo en el templates/directorio. Asegúrese de haber creado ese directorio en el mismo directorio que su módulo de Python, y de haber puesto un home.htmlarchivo en ese subdirectorio. Si su aplicación es un paquete, la carpeta de plantillas debe crearse dentro del paquete.
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
Alternativamente, si nombró a su carpeta de plantillas de otro modo templatesy no desea cambiarle el nombre predeterminado, puede decirle a Flask que use ese otro directorio.
app = Flask(__name__, template_folder='template') # still relative to module
Puede pedirle a Flask que le explique cómo intentó encontrar una plantilla determinada, estableciendo la EXPLAIN_TEMPLATE_LOADINGopción en True. Por cada plantilla cargada, obtendrá un informe registrado en el matrazapp.logger , a nivel INFO.
Así es como se ve cuando una búsqueda tiene éxito; en este ejemplo, la foo/bar.htmlplantilla amplía la base.htmlplantilla, por lo que hay dos búsquedas:
[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')
Los blueprints también pueden registrar sus propios directorios de plantillas , pero esto no es un requisito si está utilizando blueprints para facilitar la división de un proyecto más grande en unidades lógicas. El directorio principal de plantillas de la aplicación Flask siempre se busca primero incluso cuando se utilizan rutas adicionales por plano.
template_folderruta por blueprint .