DRF配置

目录

setting.py

REST_FRAMEWORK = {
        # 解析模块
    'DEFAULT_PARSER_CLASSES' : {
        'rest_framework.parsers.JSONParser', 
        'rest_framework.parsers.FormParser', 
        'rest_framework.parsers.MultiPartParser'  
    },
        #渲染模块
    '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()),
    }

猜你喜欢

转载自www.cnblogs.com/1012zlb/p/12114775.html
DRF