Flask 如何将所有端点标记为@login\u required
我正在为我的应用程序使用flask登录插件,它已经开发到了一个很好的程度 我想将所有url端点标记为“@login\u required” 我有没有办法用一行代码在一个地方完成这项工作Flask 如何将所有端点标记为@login\u required,flask,flask-login,Flask,Flask Login,我正在为我的应用程序使用flask登录插件,它已经开发到了一个很好的程度 我想将所有url端点标记为“@login\u required” 我有没有办法用一行代码在一个地方完成这项工作 而不是用@login\u required标记每个视图函数。您可以定义自己的装饰器。提供一个完全满足您需要的 from functools import wraps from flask_security import login_required def route(bp, *args, **kwargs)
而不是用@login\u required标记每个视图函数。您可以定义自己的装饰器。提供一个完全满足您需要的
from functools import wraps
from flask_security import login_required
def route(bp, *args, **kwargs):
def decorator(f):
@bp.route(*args, **kwargs)
@login_required
@wraps(f)
def wrapper(*args, **kwargs):
return f(*args, **kwargs)
return f
return decorator
您可以将路由添加到蓝图使用的任何端点,而不是直接使用蓝图的路由
装饰器
bp = Blueprint('name', __name__)
@route(bp, '/')
def route1():
return 'Hello, world!'
由于我广泛使用蓝图,因此可以在BP级别执行一些操作,一些api类似于添加url规则