luffy项目中关于APIView的使用
2021-03-22 18:25
标签:查看 rto 自定义异常 exception views 自定义 添加 认证 exist views中 luffy项目中关于APIView的使用 标签:查看 rto 自定义异常 exception views 自定义 添加 认证 exist 原文地址:https://www.cnblogs.com/95lyj/p/9484549.htmlfrom rest_framework.views import APIView
from django.shortcuts import HttpResponse
from api.utils.auth_class import LoginAuth
from api.models import *
from django.core.exceptions import ObjectDoesNotExist
from api.utils.response import BaseResponse
import json
from rest_framework.response import Response
from django.http import JsonResponse
from api.utils.exceptions import PriceException
from django_redis import get_redis_connection
class ShoppingCarView(APIView):
authentication_classes = [LoginAuth,]
response=BaseResponse()
conn=get_redis_connection("default")def post(self,request):
def post(self,request):
"""
购物车的添加课程请求
:param request:
:return:
"""
.....
def get(self,request):
"""
查看购物车列表请求
:param request:
:return:
"""
pass
自定义认证 from api.utils.auth_class import LoginAuth,api是自定义组件(相当于app01)
from rest_framework.authentication import BaseAuthentication
from rest_framework.exceptions import AuthenticationFailed
from api.models import UserToken
class LoginAuth(BaseAuthentication):
def authenticate(self, request): #一定要重写该方法
token=request.GET.get("token")
token_obj=UserToken.objects.filter(token=token).first()
if token_obj:
return token_obj.user,token_obj.token
else:
raise AuthenticationFailed("认证失败了")
自定义异常处理 from api.utils.exceptions import PriceException
class PriceException(Exception):
def __init__(self):
self.msg="价格策略有问题,你不是人!"
自定义 response from api.utils.response import BaseResponse
class BaseResponse(object):
def __init__(self):
self.data=None
self.error_msg=""
self.code=1000
@property
def dict(self):
return self.__dict__
上一篇:C#获取文件MD5值方法
下一篇:win10添加开机启动软件项