码迷,mamicode.com
首页 > 其他好文 > 详细

rest-framework之响应器

时间:2020-03-19 13:35:59      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:info   border   height   alt   create   jsonp   work   页面   ima   

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]
}


虽然可以局部使用和全局使用,但是一般建议不用动就行了;

rest-framework之响应器

标签:info   border   height   alt   create   jsonp   work   页面   ima   

原文地址:https://www.cnblogs.com/weiyiming007/p/12523479.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!