zoukankan      html  css  js  c++  java
  • rest-framework之响应器

    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()


    image

    image


    2)全局使用

    settings里配置:

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


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

  • 相关阅读:
    20170705总结
    20170703总结
    .NET 框架程序使用 Win32 API
    青春 就此别过
    Aptana Studio 2启动时提示 Workspace Cannot Be Created 解决办法
    App_GlobalResources.afvubzdv.resources.dll”--“拒绝访问。“
    c# 一维数组和二维数组的定义几种方式<转>.
    C#中Split分隔字符串的应用(C#、split、分隔、字符串)<转>
    C#操作字符串方法总结<转>
    C# 时间格式大全
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/12523479.html
Copyright © 2011-2022 走看看