day71test
练习:
视图类渲染,解析, 异常配置:
作业:
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的更多相关文章
随机推荐
- 2019-8-31-dotnet-非泛型-类型-System.Collections.IEnumerable-不能与类型实参一起使用
title author date CreateTime categories dotnet 非泛型 类型 System.Collections.IEnumerable 不能与类型实参一起使用 lin ...
- note : Get FilePathName from FILE_OBJECT
转自:http://blog.csdn.net/lostspeed/article/details/11738311 封了一个函数, 从 FILE_OBJECT 中 得到 FilePathName 在 ...
- (20)Oracle函数
substr 截取字段 substr(字符串,截取开始位置,截取长度) substr(str,n,m) 第二,三参数可以省略, 第二个参数为负数时表示从倒数第n位开始向后截取m个 round(str, ...
- 几个 GetHashCode 函数
几个 GetHashCode 函数: DBTables.pas Delphi/Pascal code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- laravel装饰者模式例子
interface Decorator{ public function display(); } class XiaoFang implements Decorator { private $nam ...
- day 61 Django基础之django分页
Django基础之django分页 一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...
- 深入浅出写一个多级异步回调从基础到Promise实现的Demo
今天一时兴起,写了一个渐进升级的异步调用demo,记录一下. 1. 最基础的同步调用 //需求:f2在f1之后执行,且依赖f1的返回值.如下: function f1(){ var s="1 ...
- 2_1.springboot2.x配置之配置文件解析
1.配置文件 1.Spring Boot使用一个全局的配置文件:•application.properties.application.yml 2.配置文件放在src/main/resources目录 ...
- 第四周课堂笔记4th
编码 Ascii美国 一个字节表示一个字符,必能表示汉子 大写字母65-90 小写字母97-122 265个位置 8位表示一个字节, 8bit=1byte GBK 中国 只包含本国文字 ...
- <每日一题>题目5:生成器表达式面试题
题目: def demo(): for i in range(4): yield i g = demo() g1 = (i for i in g ) g2 = (i for i in g1) prin ...