rest_framework_django学习笔记四(限流、权限)
from rest_framework.permissions import IsAuthenticated, IsAdminUser
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework import status
# 使用基于函数的视图进行限流和权限控制
class ExampleView(APIView):
# 允许认证用户访问
permission_classes = (IsAuthenticated,)
# 每分钟最多允许10个请求
throttle_classes = (UserRateThrottle,)
def get(self, request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
# 使用基于类的视图进行权限控制
class AdminOnlyView(APIView):
# 只有管理员用户才能访问
permission_classes = (IsAdminUser,)
def get(self, request):
content = {
'status': 'admin only view'
}
return Response(content)
在这个代码实例中,我们定义了两个视图类,ExampleView
和AdminOnlyView
。ExampleView
使用了UserRateThrottle
来限制用户的访问频率,只允许认证用户每分钟访问10次。AdminOnlyView
则使用了IsAdminUser
权限类来限制访问,只有管理员用户可以访问这个视图。这些类是在rest_framework.permissions
模块中定义的,并且可以根据需要进行扩展和自定义。
评论已关闭