在请求之前添加flask-为特定路线添加例外
在before_request()
下面的函数中,/login
如果用户尚未登录,我想将其重定向到。是否有一个特殊的变量可以为我提供当前的URL,该URL可以像下面的示例那样工作?
@app.before_request
def before_request():
# the variable current_url does not exist
# but i want something that works like it
if (not 'logged_in' in session) and (current_url != '/login'):
return redirect(url_for('login'))
我需要检查当前URL是否为/login
,因为如果不这样做,服务器将进入无限循环。
-
您可以检查请求对象上的几个属性(可能在此处记录),请参见此处记录
request.path
。request.endpoint
不过,我可以建议一下,这样一来,如果您决定将视图路由到另一个或多个URL,就会被覆盖@app.before_request def before_request(): if 'logged_in' not in session and request.endpoint != 'login': return redirect(url_for('login'))