1. 程式人生 > >rest_framework-權限-總結完結篇

rest_framework-權限-總結完結篇

frame user rom mis 代碼 turn 必須 base 頁面

#權限
#創建一個權限類 在view添加列表

class MyPermission(object):
#message 表示權限決絕時返回的數據
message = "必須是SVIP"
def has_permission(self, request, view):
if request.user.user_type != 3:
return False
return True #有權訪問

permission_classes = [MyPermission,]
#局部使用
在utils裏創建permission.py 文件
from api.utils.permission import Mypermission

#全局使用
REST_FRAMEWORK = {
"DEFAULT_PERMISSION_CLASSES":[‘api.utils.auth.SVIPPermission‘]
}

源碼流程
-has_permission(self,request, view)

內置代碼
from rest_framework.permissions import BasePermission
#必須繼承BasePermission 必須實現 has_permission 方法
返回值:
True 有權訪問
False 無權訪問
一般不拋出異常 直接通過 message可以實現無權時,頁面顯示信息

BasePermission(object):
def has_permission(self, request, view):
return True

def has_object_perssion(self, request, view, obj):
return True

class SVIPPermission(BasePermission):
#message 表示權限決絕時返回的數據
message = "必須是SVIP"
def has_permission(self, request, view):
if request.user.user_type != 3:
return False
return True #有權訪問

rest_framework-權限-總結完結篇