• luffy项目中关于APIView的使用


    views中

    from 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__
  • 相关阅读:
    学习进度表 06
    课堂练习第七周
    学习进度表 05
    学习进度表 04
    分组情况
    求子数组最大值
    codeforce 8A-8C
    nginx 设置服务,开机启动
    转 ubuntu 安装php
    Nginx小记
  • 原文地址:https://www.cnblogs.com/95lyj/p/9484549.html
Copyright © 2020-2023  润新知