响应器

一、作用

返回的时候,为什么在浏览器里是一个好看的页面,点json的时候返回json格式?

根据 用户请求URL 或 用户可接受的类型,筛选出合适的 渲染组件。
用户请求URL:
    http://127.0.0.1:8000/test/?format=json
    http://127.0.0.1:8000/test.json

 

二、内置渲染器

显示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/

 

三、响应器的使用

1、全局使用

在settings里配置

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer']
}

2、局部使用

from rest_framework.views import APIView
from app01 import models
from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer

class PublishSerializers(ModelSerializer):
    class Meta:
        model = models.Publish
        fields = '__all__'


class Publish(APIView):
    renderer_classes = [JSONRenderer, BrowsableAPIRenderer]  #局部使用 两者都响应
    queryset = models.Publish.objects.all()
    serializer_class = PublishSerializers

只响应json格式

json格式浏览器格式都响应

 

posted @ 2019-07-05 20:06  TianShu  Views(155)  Comments(0Edit  收藏  举报