本文和大家分享的主要是Python装饰器相关内容,一起来看看吧,希望对大家
学习python
有所帮助。
使用Django的时候,我发现一个很神奇的装饰器: @login_required , 这是控制一个 view 的权限的,比如一个视图必须登录才可以访问,可以这样用:
@login_requireddef my_view(request):
...
return render(...)
同时,如果要达到这样一种效果:如果用户没有登录,那么就把用户重定向到登录界面,可以这样用:
@login_required(login_url='/accounts/login/')def my_view(request):
...
return render(...)
所以这个装饰器可以带括号写,又可以不带括号写。很神奇有没有。正常的接收参数的装饰器,就算没参数也应该写成 @login_required 的
好奇去查了一下,在 stackoverflow 找到一种实现,挺有意思的。先晒出答案:
使用Django的时候,我发现一个很神奇的装饰器: @login_required , 这是控制一个 view 的权限的,比如一个视图必须登录才可以访问,可以这样用:
@login_requireddef my_view(request):
...
return render(...)
同时,如果要达到这样一种效果:如果用户没有登录,那么就把用户重定向到登录界面,可以这样用:
@login_required(login_url='/accounts/login/')def my_view(request):
...
return render(...)
所以这个装饰器可以带括号写,又可以不带括号写。很神奇有没有。正常的接收参数的装饰器,就算没参数也应该写成 @login_required 的
好奇去查了一下,在 stackoverflow 找到一种实现,挺有意思的。先晒出答案: