小码问答,有问必答!

2020-12-23 15:49

View function mapping is overwriting an existing endpoint function: wrapper

2020-12-23 15:49 回答了这个问题

是Flask在视图映射的时候,不同的路径映射到了相同的方法所致。

可能的情况是用了装饰器,但是装饰器返回的方法都是 wrapper,这个时候Flask认为wrapper方法已经映射过了,所以会报异常。


可以修改装饰器,使用@wraps修饰,让返回的装饰器用被装饰的方法的名字,Flask就不会报错了。

from  functools import wraps

def admin_filter(func):
    @wraps(func)#让这个修饰器的名字和被修饰的方法名字一致
    def wrapper():
        if 'user' not in session:
            return redirect("http://wanmait.com/")
        return func()
    return wrapper


0条评论

我要评论