This question already has answers here:
What does functools.wraps do?

(6个答案)


3年前关闭。




我有一个flask应用程序,在其中已实现了一个代码段,以检查用户是否登录,以便访问我的应用程序上的某些网页。

我的方法如下所示:
#check if session is avaliable to access hidden pages for non users
def is_logged_in(f):
    @wraps(f)
    def wrap(*args, **kwargs):
        if 'logged_in' in session:
            return f(*args, **kwargs)
        else:
            flash('Please Login ', 'danger')
            return redirect(url_for('login'))
    return wrap

在这里,我检查 session 是否具有附加到 session 的logged_in属性。

但是,我收到一个错误消息global name @wraps is not defined
但我不知道为什么?

最佳答案

您可能缺少functools的包装

from functools import wraps

10-04 19:25