jinja2.exceptions.TemplateNotFound 报错处理

jinja2.exceptions.TemplateNotFound 报错处理

一、检查模板文件夹是否正确。

遇到这个问题,首先需要检查你的模板文件夹命名是否规范,Flask默认会在工程下寻找templates文件夹,这个是默认配置,不能写成template或者其他名字。当然,如果你使用的是PyCharm创建的Flask项目,PyCharm默认会帮你创建这个模板文件夹,你只需要把这个模板文件放在这个模板文件夹中即可。在PyCharm中,这个文件夹有着特殊标记。
当然,我也尝试过取消标记为template Folder,但是Flask依然能准确的找到这个模板文件夹。

二、关于模板路径

如果你的模板文件夹命名没有问题,那么我想你可能并不是在项目文件夹下直接使用render_template方式处理响应吧。你可能是在项目中创建了包。在这个包中实现对响应的处理。

这时你需要在这个包下创建一个名为templates的模板文件夹,再将这个模板文件放任其中。然后即可正常对模板文件进行渲染了;

其实,对于这个规则,Flask在其官方文档中确有说明。

也就是说项目工程下的文件默认找到项目下的templates,而包中的文件默认找包中的templates文件夹,所以当需要在包内进行渲染,就先在这个包内创建一个templates目录用于存放模板文件;

当然,除此之外,也可以通过对Flask对象设置template_folder属性来设置;
app = Flask(__name__, template_folder="./templates")