如何使 Flask 重定向(“abc”)返回相对于应用程序运行的 URL 路径?

问题描述 投票:0回答:2

我的 Flask 应用程序在

domain.com/test/
上运行。在我的代码中,如果用户点击应用程序中的任何 URL(无论是否是路由处理程序)并且未登录,我希望重定向将用户返回到 domain.com/test/login

如果我这样做

redirect("/abc")
,它会将它们发送到
domain.com/abc
。如果我这样做
redirect("abc")
,并且它们来自某个路线,例如
domain.com/test/bla/
,则会将它们发送到
domain.com/test/bla/abc

我只想重定向将它们发送到

[url-flask-app-is-running-on]/[the-redirect-path-segment]

另一方面,我可以给

redirect
一个端点而不是字符串路径吗?

python flask
2个回答
1
投票

有两种方法:

  1. 您可以使用
    return redirect('domain.com/test/login')
    ,这是完整路径。
  2. 如果你的代码是这样的:
@app.route('/test/login')
def login_form()
     pass # Login form

然后你就可以使用

return redirect(flask.url_for('login_form')

来源

redirect

来源

url_for


0
投票

任何通常适用于 HTML 链接的值也应该适用于重定向。

© www.soinside.com 2019 - 2024. All rights reserved.