在请求之前添加flask-为特定路线添加例外

发布于 2021-01-29 18:21:25

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,因为如果不这样做,服务器将进入无限循环。

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以检查请求对象上的几个属性(可能在此处记录),请参见此处记录request.pathrequest.endpoint不过,我可以建议一下,这样一来,如果您决定将视图路由到另一个或多个URL,就会被覆盖

        @app.before_request
        def before_request():
            if 'logged_in' not in session and request.endpoint != 'login':
                return redirect(url_for('login'))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看