一尘不染

如何在Flask中重定向到外部域?

flask

在我的flask应用程序中完成操作后,我需要重定向回外部URL。代码看起来像这样

if form.next.data is not None:
    return redirect(form.next.data)

这里form.next.data可以为像“www.google.com”外部域的绝对URL。但是,在将下一个值作为外部url传递时,此重定向将重定向到http://mysitename/www.google.com404并失败。

如何指定重定向到外部域并阻止Flask将其附加到我的域根目录?


阅读 1052

收藏
2020-04-08

共1个答案

一尘不染

我认为你需要添加一个前缀http://或https://到"www.google.com“。否则Flask会将其视为应用内的相对网址。因此下面将是一个404,因为它将转到“ localhost:5000 / www.google.com”

@app.route('/test')
def test():
    return redirect("www.google.com")

但是,如果尝试使用http://,它应该可以正常工作。

@app.route('/test')
def test():
    return redirect("http://www.google.com")
2020-04-08