7

我的应用程序使用 捕获所有 url 请求@app.route,但偶尔会遇到一个错误的 url,我没有匹配的 jinja 文件(但它确实匹配现有的@app.route)。因此,我想将此类请求重定向到该错误 url 的 404 页面。

在返回之前如何区分“一个 jinja 文件存在”和“一个 jinja 文件不存在” render_template()

4

1 回答 1

17

如果找不到模板,Jinja 会抛出异常:TemplateNotFound

所以而不是:

def myview():
    return render_template(...)

你可以这样做:

def myview():
    try:
        return render_template(...)
    except TemplateNotFound:
        abort(404)

然后按照Flask 文档中的说明使用自定义错误页面处理 404 错误。不要忘记abortflaskTemplateNotFound从导入jinja2

于 2012-06-12T10:46:15.973 回答