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")