Debe crear sus archivos de plantilla en la ubicación correcta; en el templates
subdirectorio junto a su módulo de Python.
El error indica que no hay ningún home.html
archivo 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.html
archivo 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 templates
y 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_LOADING
opció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.html
plantilla amplía la base.html
plantilla, 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_folder
ruta por blueprint .