rest-framework-权限组件
生活随笔
收集整理的這篇文章主要介紹了
rest-framework-权限组件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
rest-framework-權(quán)限組件
一 權(quán)限簡(jiǎn)介
只用超級(jí)用戶(hù)才能訪問(wèn)指定的數(shù)據(jù),普通用戶(hù)不能訪問(wèn),所以就要有權(quán)限組件對(duì)其限制
二 局部使用
from rest_framework.permissions import BasePermission class UserPermission(BasePermission):message = '不是超級(jí)用戶(hù),查看不了'def has_permission(self, request, view):# user_type = request.user.get_user_type_display()# if user_type == '超級(jí)用戶(hù)':user_type = request.user.user_typeprint(user_type)if user_type == 1:return Trueelse:return False class Course(APIView):authentication_classes = [TokenAuth, ]permission_classes = [UserPermission,]def get(self, request):return HttpResponse('get')def post(self, request):return HttpResponse('post')局部使用只需要在視圖類(lèi)里加入:
permission_classes = [UserPermission,]三 全局使用
REST_FRAMEWORK={"DEFAULT_AUTHENTICATION_CLASSES":["app01.service.auth.Authentication",],"DEFAULT_PERMISSION_CLASSES":["app01.service.permissions.SVIPPermission",] }四 源碼分析
def check_permissions(self, request):for permission in self.get_permissions():if not permission.has_permission(request, self):self.permission_denied(request, message=getattr(permission, 'message', None))self.get_permissions()
def get_permissions(self):return [permission() for permission in self.permission_classes]權(quán)限類(lèi)使用順序:先用視圖類(lèi)中的權(quán)限類(lèi),再用settings里配置的權(quán)限類(lèi),最后用默認(rèn)的權(quán)限類(lèi)
?
posted on 2019-01-05 20:47 漫天飛雪世情難卻 閱讀(...) 評(píng)論(...) ?編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/jokezl/articles/10226075.html
總結(jié)
以上是生活随笔為你收集整理的rest-framework-权限组件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql查询优化以及面试小结
- 下一篇: Vim的新一代补全插件:coc.nvim