@api_view的权限认证

函数API的实现

from rest_framework.decorators import api_view

@api_view(['GET', 'POST'])
def ClubSonAPI(request, format=None,pk=None):
    if request.method == 'GET':
        club = models.ClubSon.objects.all()
        serializer = serializers.ClubSon(instance=club, many=True)
        return Response(serializer.data)
    elif request.method == 'POST':
        pass
  • pk的作用
    • pk是对单条数据作用

权限认证

from rest_framework.decorators import api_view,authentication_classes,permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.authentication import SessionAuthentication, TokenAuthentication

@api_view(['GET', 'POST'])
@permission_classes([IsAuthenticated])
@authentication_classes([TokenAuthentication])
def ClubSonAPI(request, format=None,pk=None):
    if request.method == 'GET':
    	if request.user.has_perm('monitor.view_googletop'):      //权限验证
            club = models.ClubSon.objects.all()
            serializer = serializers.ClubSon(instance=club, many=True)
            return Response(serializer.data)
	elif request.method == 'POST':
        pass
  • 三个装饰器顺序不能错
  • has_perm 是验证权限的函数,参数格式为 应用.codename ,其中应用即app名称,codename在表 auth_permission 中,对应的是每个model的增删改查权限

权限认证模版

if request.user.has_perm('monitor.view_googletop'):
    # 权限认证完成后可以执行的代码
    # 所需要的权限跟进实际需求更改,本处权限判断为随意添加的
else:
    return error(message='没有访问权限')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值