1、响应器作用
根据用户请求的URL 或 用户可接受的类型,筛选出合适的 渲染组件;
比如我们用浏览器访问时就会有一个简单样式的页面,用postman访问就只是json格式的数据;
2、内置的响应器
显示json格式:JSONRenderer
访问URL:
- http://127.0.0.1:8000/test/?format=json
- http://127.0.0.1:8000/test.json
- http://127.0.0.1:8000/test/
默认显示格式:BrowsableAPIRenderer(可以修改它的html文件)
访问URL:
- http://127.0.0.1:8000/test/?format=api
- http://127.0.0.1:8000/test.api
- http://127.0.0.1:8000/test/
表格方式:AdminRenderer
访问URL:
- http://127.0.0.1:8000/test/?format=admin
- http://127.0.0.1:8000/test.admin
- http://127.0.0.1:8000/test/
form表单方式:HTMLFormRenderer
访问URL:
- http://127.0.0.1:8000/test/?format=form
- http://127.0.0.1:8000/test.form
- http://127.0.0.1:8000/test/
3、使用
1)局部使用
views.py
from django.shortcuts import render from app01 import models from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.parsers import JSONParser # 导入模块 from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer # Create your views here. class Test(APIView): # 如果只加JSONRenderer,用浏览器打开时就只是json数据,页面没有样式 # 加了BrowsableAPIRenderer,用浏览器打开时就会有样式 renderer_classes = [JSONRenderer, BrowsableAPIRenderer, ] # 响应器 def post(self, request): print(request.data) print(type(request.data)) return Response()
2)全局使用
settings里配置:
REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer'] }
虽然可以局部使用和全局使用,但是一般建议不用动就行了;