zoukankan      html  css  js  c++  java
  • drf基础组件练习

    练习:

    视图类渲染,解析, 异常配置:

    作业:    
    	1.、简单过过请求模块的源码流程,建立一个视图类,完成一项渲染模块与解析模块的全局,局部配置
    
        2.、在自己项目中自定义一下异常处理函数,并配置给项目
    

    settings.py

    全局配置:
    	
    REST_FRAMEWORK = {
    		# 解析模块
        'DEFAULT_PARSER_CLASSES' : {
            'rest_framework.parsers.JSONParser', 
            'rest_framework.parsers.FormParse', 
            'rest_framework.parsers.JSONParser',  
        },
    		#渲染模块
    	'DEFAULT_RENDERER_CLASSES': {
            'rest_framework.renderers.JSONRenderer',    
            'rest_framework.renderers.BrowsableAPIRenderer',
        },
    		# 自定义配置异常模块
         'EXCEPTION_HANDLER': 'api.exception.exception_handler', 
    }
    

    views.py:

    视图类局部配置:
    
    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')
    
    
    

    exception.py

    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

    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()),
        }
    
  • 相关阅读:
    PS学习【不间断在本页面更新】
    html5的css3等学习资料网页合集
    分别实现图片沿着XYZ轴旋转的动画
    css3实现循环抖动等动画
    jpg图片隐藏压缩文件
    基础知识【笔记】
    java爬虫,爬取网址、爬取视频、爬取图片
    纯js实现音乐播放的功能
    iOS
    iOS -MVC
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12093853.html
Copyright © 2011-2022 走看看