Python 如何在助手函数中访问请求

Python 如何在助手函数中访问请求,python,flask,Python,Flask,假设您想重定向未登录的用户。目前我有: def my_account(): if "user" not in session or not session["user"]: return redirect('/') ... def my_favourites(): if "user" not in session or not session["user"]: return redirect('/') ... 但是现在我想重

假设您想重定向未登录的用户。目前我有:

def my_account():
    if "user" not in session or not session["user"]:
        return redirect('/')

    ...

def my_favourites():
    if "user" not in session or not session["user"]:
        return redirect('/')

    ...
但是现在我想重用检查用户是否登录的代码。但这需要
会话
对象


我不确定是否可以或应该在helper函数中显式传递
请求
会话
对象。或者是否还有其他更可取的方法?

您尝试过吗?我相信这是一个包,将提供什么你正在寻找更容易

如果要编写可重用代码来验证用户是否已登录,建议使用视图函数上的装饰程序。比如说,

@login_required
def do_something():
*    pass
然后,您可以在下面定义这个装饰器。然后可以使用
请求
会话
对象。此外,如果用户尚未登录,这将重定向到登录url,然后在登录后转发到下一页

def login_required(f):
*    @wraps(f)
*    def decorated_function(*args, **kwargs):
*        if "user" not in session or not session["user"]:
*            return redirect(url_for('login', next=request.url))
*        return f(*args, **kwargs)
*    return decorated_function

我看了一眼。此刻,我希望“滚我自己的”,并试图对烧瓶有更深的理解。另外,我想知道在一般情况下如何做到这一点,而不一定是身份验证/自动授权。