我使用了login_required
装饰器和另一个对输出数据进行分页的装饰器。哪一个先来很重要吗?
发布于 2018-04-28 13:26:49
根据login_required的实现,
def login_required(func):
@wraps(func)
def decorated_view(*args, **kwargs):
if current_app.login_manager._login_disabled:
return func(*args, **kwargs)
elif not current_user.is_authenticated():
return current_app.login_manager.unauthorized()
return func(*args, **kwargs)
return decorated_view
你应该像下面这样做。
@login_required
@paginate
def view_function():
pass
假设您有另一个装饰器is_admin来判断一个用户是否拥有管理员权限,您应该这样做
@login_required
@is_admin
def view_function():
pass
发布于 2015-01-29 07:22:08
根据PEP 318的说法,函数修饰器的语法是:
@dec2
@dec1
def func(arg1, arg2, ...):
pass
这相当于:
def func(arg1, arg2, ...):
pass
func = dec2(dec1(func))
在dec2之前调用dec1。
您可以定义这些函数进行检查,如下所示:
def dec1(func):
print 'dec1'
def dec2(func):
print 'dec2'
@dec2
@dec1
def func():
pass
dec1
dec2
实际上,它不会产生任何错误,但如果您首先使用login_reqired
,而用户没有登录,则应用程序将在login_required
函数生成中止后处理数据并对其进行分页
flask中login_required装饰器的最佳实现是:
@paginate
@login_required
def view_function():
pass
https://stackoverflow.com/questions/28204071
复制相似问题