REST framework之許可權元件

2022-05-07 05:21:10 字數 1350 閱讀 5174

例如只用超級使用者才能訪問指定的資料,普通使用者不能訪問,所以就要有許可權元件對其限制

from rest_framework.permissions import basepermission

class userpermission(basepermission):

message = '不是超級使用者,檢視不了'

def has_permission(self, request, view):

# user_type = request.user.get_user_type_display()

# if user_type == '超級使用者':

return httpresponse('post')

區域性使用只需要在檢視類裡加入:

permission_classes = [userpermission,]
rest_framework=
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]

許可權類使用順序:先用檢視類中的許可權類,再用settings裡配置的許可權類,最後用預設的許可權類

rest framework之認證元件

1 models層 class user models.model username models.charfield max length 32 password models.charfield max length 32 user type models.integerfield choice...

rest framework之版本控制

api版本控制可以用來在不同的客戶端使用不同的行為。rest框架提供了大量不同的版本設計。版本控制是由傳入的客戶端請求決定的,並且可能基於請求url,或者基於請求頭。有許多有效的方法達到版本控制的目的。特別是為具有多個客戶的長期系統工程進行設計時,沒有版本控制的系統也是可以的。當使用版本控制時,re...

rest framework 之版本控制

用於版本的控制 from rest framework.versioning import queryparameterversioning,acceptheaderversioning,namespaceversioning,urlpathversioning 基於url的get傳參方式 quer...