zoukankan      html  css  js  c++  java
  • day71作业

    总路由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'))
    ]
    

    分发路由urls.py

    from django.conf.urls import url
    from django.contrib import admin
    from . import views
    urlpatterns = [
        # url(r'^admin/', admin.site.urls),
        url(r'^books/$', views.BookView.as_view()),
        url(r'^books/(?P<pk>d+)/$', views.BookView.as_view())
    ]
    

    settings配置

    # 先注册'rest_framework'
    
    REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': [
            'rest_framework.renderers.JSONRenderer',
            'rest_framework.renderers.BrowsableAPIRenderer',
        ],
    
        'DEFAULT_PARSER_CLASSES': [
            'rest_framework.parsers.JSONParser',
            'rest_framework.parsers.FormParser',
            'rest_framework.parsers.MultiPartParser'
        ],
    
        'EXCEPTION_HANDLER': 'api.exception.exception_handler',
    }
    

    视图views.py

    from rest_framework.response import Response
    from rest_framework.views import APIView
    from rest_framework.renderers import BrowsableAPIRenderer, JSONRenderer
    from rest_framework.parsers import JSONParser, FormParser, MultiPartParser
    
    
    class BookView(APIView):
        # 配置局部渲染类
        RENDERER_CLASSES = [BrowsableAPIRenderer, JSONRenderer]
    
        # 局部配置解析类
        PARSER_CLASSES = [JSONParser, FormParser, MultiPartParser]
    
        def get(self, request, *args, **kwargs):
            return Response(
                data={
                    'msg': 'view get ok'
                }
            )
    

    处理响应 服务端异常处理

    # 应用下建立 exception, 重写exception_handler方法
    
    from rest_framework.response import Response
    from rest_framework.views import exception_handler as drf_exception_handler
    
    def exception_handler(exc, context):
        response = drf_exception_handler(exc, context)
        detail = '%s - %s - %s' % (context.get('view'), context.get('request').method, exc)
        if not response:
            response = Response({'detail': detail})
        else:
            response.data = {'detail': detail}
    
        return response
    
    
  • 相关阅读:
    常用PHP函数整理
    Linux常用命令整理
    Linux怎样创建FTP服务器
    设置ssh只允许用户从指定的IP登陆
    解决数据库不能远程连接方法
    [记录]ns_error_unexpected firefox tinymce
    $.parseJSON 将json 对象转换为array
    Flash cs6 帧上的菱形原来是关键帧
    [记录]java.math.biginteger cannot be cast to java.lang.long
    Flash cs6 如何从FLA 文件导出sound文件
  • 原文地址:https://www.cnblogs.com/setcreed/p/12094197.html
Copyright © 2011-2022 走看看