【问题标题】:How do I create a 404 page?如何创建 404 页面?
【发布时间】:2012-06-12 09:50:51
【问题描述】:

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

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

【问题讨论】:

    标签: python flask jinja2


    【解决方案1】:

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

    所以而不是:

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

    你可以这样做:

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

    然后按照Flask documentation 中的说明使用自定义错误页面处理 404 错误。不要忘记从flask 导入abort 和从jinja2 导入TemplateNotFound

    【讨论】:

    • 雅虎!如果没有找到 jinja 文件,你是对的 render_template() 确实返回了异常。有用。谢谢你的酷回答。
    • 请将以下代码添加到您的答案中。 '从烧瓶导入中止'
    猜你喜欢
    • 2021-12-30
    • 2015-09-01
    • 2010-11-25
    • 2018-11-03
    • 2016-12-14
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    相关资源
    最近更新 更多