zoukankan      html  css  js  c++  java
  • APIView请求生命周期

    A作业(必做)

    """
    1、整理今天所学知识点
    
    2、简单过过请求模块的源码流程,建立一个视图类,完成一项渲染模块与解析模块的全局局部配置
    
    3、在自己项目中自定义一下异常处理函数,并配置给项目
    """
    
    from rest_framework.parsers import JSONParser,FormParser,MultiPartParser
    from rest_framework.renderers import JSONRenderer
    from rest_framework.renderers import BrowsableAPIRenderer
    from rest_framework.views import APIView
    from rest_framework.response import Response
    
    class Student(APIView):
        parser_classes = [JSONParseer]   
        renderer_classes = [JSONRenderer] 
        
        def get(self,request,*args,**kwargs):
            return Response('drf get ok')
    
        def post(self,request,*args,**kwargs):
            return Response('drf post ok')
    from rest_framework.views import exception_handler as drf_exception_handler
    from rest_framework.response import Response
    from rest_framework import status  
    
    def exception_handler(exc, context):     
        response = drf_exception_handler(exc, context)
        detail = '%s-%s-%s' %(context.get('view'),context.get('request'),exc)
        if not response:  
            response = Response({'detail':detail},, status=status.HTTP_500_INTERNAL_SERVER_ERROR, exception=True)
        else:
            response.data = {'detail':detail}
        return response
    urls.py:
        from django.conf.urls import url, include
        from django.contrib import admin
    
        urlpatterns = [
            url(r'^admin/', admin.site.urls),
            url(r'^api/', include('api.urls')),
        ]
    
    api.urls.py:
        
        from django.conf.urls import url
        from . import  views
        urlpatterns = {
            url(r'^student/$',views.Student.as_view()),
        }
    

    B作业(选做)

    """
    1、预习视频
    
    2、后期项目会出现大量的响应,响应数据可以如下
    正确的:Response({'status':0,'msg':'ok','results':[]})
    异常的:Response({'status':1,'msg':'error'}, status=400)
    ...
    
    能不能二次封装Response类(自定义一个APIResponse类继承Response),优化响应
    正确的:APIResponse('results'=[])  # 数据状态码和状态信息有默认值,可以不传
    异常的:Response(1,'error', status=400)  # 可以按位传数据状态码和状态信息,错误时还可以设置网络状态码
    封装后的响应与封装前的响应结果一致,但是大大简化了响应写法
    """
    
  • 相关阅读:
    BestCoder17 1001.Chessboard(hdu 5100) 解题报告
    codeforces 485A.Factory 解题报告
    codeforces 485B Valuable Resources 解题报告
    BestCoder16 1002.Revenge of LIS II(hdu 5087) 解题报告
    codeforces 374A Inna and Pink Pony 解题报告
    codeforces 483B Friends and Presents 解题报告
    BestCoder15 1002.Instruction(hdu 5083) 解题报告
    codeforces 483C.Diverse Permutation 解题报告
    codeforces 483A. Counterexample 解题报告
    NSArray中地内存管理 理解
  • 原文地址:https://www.cnblogs.com/jinhongquan/p/12120451.html
Copyright © 2011-2022 走看看