zoukankan      html  css  js  c++  java
  • 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__
  • 相关阅读:
    [原创]平面机器人的避障策略思考
    做个快乐的程序员
    [知识]双音多频(DTMF)信号
    osg 关于LOD
    (3)vtkMapper
    关于坐标系,关于矩阵及线性相关和无关的关系
    osg找不到插件的解决办法
    逆风飞扬,吴仁宏
    整合qt设计师和vs2008出了点问题,记下来
    关于NodeVisitor访问者模式
  • 原文地址:https://www.cnblogs.com/95lyj/p/9484549.html
Copyright © 2011-2022 走看看