首页 > 解决方案 > 如何使烧瓶重定向(“abc”)相对于应用程序运行的url路径返回?

问题描述

我的烧瓶应用程序正在运行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]

另一方面-我可以给重定向端点而不是字符串路径吗?

谢谢!

标签: pythonflask

解决方案


有2种方式:

  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')

重定向来源:https ://flask.palletsprojects.com/en/2.0.x/quickstart/#redirects-and-errors

url_for 来源:https ://flask.palletsprojects.com/en/2.0.x/quickstart/#url-building


推荐阅读