gpt4 book ai didi

python - 使用相同的装饰器路由到 view_func "flask"

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:14 25 4
gpt4 key购买 nike

假设我有这条路线:

app.add_url_rule('/',
view_func=index,
methods=['GET'])

app.add_url_rule('login',
view_func=login,
methods=['GET', 'POST'])

@validate_access()
def index():
#......

@validate_access()
def login():
#......

我有 2 个具有相同装饰器“@validate_access”的端点。当我运行这段代码时,我得到了

AssertionError: View function mapping is overwriting an existing endpoint function:    wrapperAssertionError: View function mapping is overwriting an existing endpoint function: wrapper

不知道是不是bug。但是,如果有解决方案,请通知我。

谢谢 :)

最佳答案

如果您不向add_url_ruleroute 提供endpoint,方法的名称将用作端点。发生的事情是规则是用包装函数的名称创建的,而不是装饰函数,可能是因为你没有使用 functools.wraps

from functools import wraps
def my_decorator(f):
@wraps(f)
def wrapper(*args, **kwds):
return f(*args, **kwds)
return wrapper

关于python - 使用相同的装饰器路由到 view_func "flask",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17540754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com