练习:

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

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

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] #局部渲染配置
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get</span><span class="hljs-params">(self,request,*args,**kwargs)</span>:</span>
<span class="hljs-keyword">return</span> Response(<span class="hljs-string">'drf get ok'</span>) <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">post</span><span class="hljs-params">(self,request,*args,**kwargs)</span>:</span>
<span class="hljs-keyword">return</span> Response(<span class="hljs-string">'drf post ok'</span>)

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(<span class="hljs-string">r'^admin/'</span>, admin.site.urls),
url(<span class="hljs-string">r'^api/'</span>, include(<span class="hljs-string">'api.urls'</span>)),
]

api.urls.py:

<span class="hljs-keyword">from</span> django.conf.urls <span class="hljs-keyword">import</span> url
<span class="hljs-keyword">from</span> . <span class="hljs-keyword">import</span> views
urlpatterns = {
url(<span class="hljs-string">r'^student/$'</span>,views.Student.as_view()),
}</code></pre>

day71test的更多相关文章

随机推荐

  1. iOS组件化开发-CocoaPods简介

    CocoaPods简介 任何一门开发语言到达一定阶段就会出现第三方的类库管理工具,比如Java的Maven.WEB的Webpack等.在iOS中类库的管理工具-CocoaPods. 利用CocoaPo ...

  2. 源码编译安装nginx详细步骤

    1.下载nginx源码包并解压 可在http://nginx.org/en/download.html下载.tar.gz的源码包,如(nginx-1.4.7.tar.gz) 下载后通过tar -xvz ...

  3. 启动 AXD 配置开发板

    1. 启动 AXD 先启动 Dragon­ICE Server 程序. 按如下步聚启动 AXD: 开始­>所有程序­>ARM Developer Suite v1.2­>AXD De ...

  4. Ansible配置及使用

    使用公私钥实现ssh无密码登录 生成公钥和私钥 ssh-keygen -t rsa 公钥相当于锁id_rsa.pub,私钥相当于钥匙id_rsa 借用ssh-copy-id工具实现无密码登录 ssh- ...

  5. 【学术篇】SDOI2008 仪仗队

    Part1:传送门&吐槽 水题... 然而由于线筛里面的\(j\)打成了\(i\)然后就不能1A了OvO Part2:题目分析 这个正方形是对称的... 而且很显然对角线上只有一个点会被看到. ...

  6. sql(7)

    EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据. EXCEPT 子句/运算符用于将两个 SELECT 语句结合在一起,并返回第一个 SELECT 语句的结果中那些不存在于第二个 S ...

  7. MQTT--笔记

    一.MQTT协议基本介绍 1.1.MQTT是什么? MQTT,全称为Message Queue Telemetry Transport.在1999年,由IBM的Andy Stanford-Clark和 ...

  8. SQL Server ODBC 解决方案

    { } { }

  9. thinkphp 定界符

    模板文件可以包含普通模板标签和XML模板标签,标签的定界符都可以重新配置. 大理石平台厂家 普通标签 内置模板引擎的普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果 ...

  10. MySQL高可用(Galera Cluster)

    Galera Cluster简介 Galera Cluster是集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分 ...