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__
  • 相关阅读:
    [ABC142F] Pure
    [ABC141F] Xor Sum 3
    tarjan缩点
    LoadRunner录制:事务
    LoadRunner录制:脚本调试
    linux性能监控命令
    Python 3 解析 html
    Python 3 操作json 文件
    Python 数据驱动工具:DDT
    selenium 问题:OSError: [WinError 6] 句柄无效
  • 原文地址:https://www.cnblogs.com/95lyj/p/9484549.html
Copyright © 2011-2022 走看看