如何重定向到外部404页python烧瓶

问题描述 投票:6回答:3

如何实现这一点,我是python和flask的新手,我正在尝试将404重定向到这样的外部网址:

@app.route('404')
def http_error_handler(error):
return flask.redirect("http://www.exemple.com/404"), 404

但是我得到它不起作用

未找到在服务器上找不到请求的URL。如果您手动输入网址,请检查拼写,然后重试。

python redirect error-handling flask
3个回答
9
投票

您应该尝试这样的事情:

from flask import render_template

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

来源http://flask.pocoo.org/docs/1.0/patterns/errorpages/


5
投票

您无法执行此操作-user-agent(在大多数情况下是浏览器)查看返回的状态码来确定要执行的操作。当您返回404状态代码时,您对用户代理说的是“我不知道您要的是什么”,然后用户代理可以:

  • 在响应的正文中显示返回的内容
  • 向最终用户显示其自身的错误消息
  • 做以上两个选项的组合

redirect实际上是creates a little HTML response (via werkzeug.exceptions),通常最终用户看不到,因为用户代理在看到302响应时会跟随Location标头。但是,当您提供自己的状态码(404)时,您将override状态码。

解决方法是:


2
投票

尝试用它代替路线

return redirect("/where-ever"), 404, {"Refresh": "1; url=/where-ever"}
© www.soinside.com 2019 - 2024. All rights reserved.