meaning python flask

python - meaning - Flask genera el error TemplateNotFound a pesar de que existe un archivo de plantilla



flask wikipedia (4)

Estoy tratando de renderizar el archivo home.html . El archivo existe en mi proyecto, pero sigo obteniendo jinja2.exceptions.TemplateNotFound: home.html cuando intento renderizarlo. ¿Por qué Flask no puede encontrar mi plantilla?

from flask import Flask, render_template app = Flask(__name__) @app.route(''/'') def home(): return render_template(''home.html'')

/myproject app.py home.html


Debe colocar todos sus archivos .html en la carpeta de plantillas al lado de su módulo python. Y si hay imágenes que estás usando en tus archivos html, entonces necesitas poner todos tus archivos en la carpeta llamada static

En la siguiente Estructura

project/ hello.py static/ image.jpg style.css templates/ homepage.html virtual/ filename.json


Debe crear sus archivos de plantilla en la ubicación correcta; en el subdirectorio de templates lado de su módulo python.

El error indica que no hay ningún archivo home.html en las templates/ directorio. Asegúrate de haber creado ese directorio en el mismo directorio que tu módulo python, y de hecho, has puesto un archivo home.html 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 como algo diferente a las templates y no desea cambiarle el nombre a la predeterminada, puede decirle a Flask que use ese otro directorio.

app = Flask(__name__, template_folder=''template'') # still relative to module


Mira esto:

  1. el archivo de la plantilla tiene el nombre correcto
  2. el archivo de plantilla está en un subdirectorio llamado templates
  3. el nombre que pasa a render_template es relativo al directorio de la plantilla ( index.html estaría directamente en el directorio de plantillas, auth/login.html estaría bajo el directorio auth en el directorio de plantillas).
  4. o bien no tiene un subdirectorio con el mismo nombre que su aplicación, o el directorio de plantillas está dentro de ese subdirectorio.

Si eso no funciona, active la depuración ( app.debug = True ) que podría ayudar a determinar qué es lo que está mal.


No sé por qué pero con Python 3.6 tuve que usar la siguiente estructura de carpetas (poner "templates" un nivel más abajo ...):

test/ app/ hello.py static/ main.css templates/ home.html virtual/ pip-selfcheck.json etc...