在我的烧瓶应用程序中完成操作后,我需要重定向回外部URL.代码看起来像这样
if form.next.data is not None:
return redirect(form.next.data)
Run Code Online (Sandbox Code Playgroud)
哪里form.next.data可以是外部域名的绝对网址,例如"www.google.com".但是,在将下一个值作为外部URL传递时,此重定向将重定向到http://mysitename/www.google.com404并失败.
如何指定重定向到外部域并阻止Flask将其附加到我的域根?
xbb*_*xbb 18
我认为你需要添加一个前缀http://或https://到"www.google.com".否则Flask会将其视为app中的相对url.所以下面将是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")
在将其传递到重定向之前,请确保在 url 前附加“http://”。
s = form.next.data
if s is not None:
if s.find("http://") != 0 and s.find("https://") != 0:
s = "http://" + s
return redirect(s)
Run Code Online (Sandbox Code Playgroud)