我的应用程序使用@app.route
捕获所有网址请求,但偶尔会遇到一个错误的网址,我没有匹配的jinja文件(因为它与现有的@app.route
匹配)。所以我想将这些请求重定向到这个坏网址的404页面。
如何在返回render_template()
之前区分“jinja文件存在”和“jinja文件不存在”?
答案 0 :(得分:17)
如果找不到模板,Jinja将抛出异常:TemplateNotFound
所以而不是:
def myview():
return render_template(...)
你可以这样做:
def myview():
try:
return render_template(...)
except TemplateNotFound:
abort(404)
然后按照Flask documentation中的说明使用自定义错误页面处理404错误。不要忘记从abort
和flask
TemplateNotFound
导入jinja2
{/ 1}}