一、作用:

  根据用户的请求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/


三、局部使用

设置路由:

url(r'^publish/(?P<pk>\d+)/',views.PublishDetailView.as_view()),

设置视图:
from rest_framework.renderers import HTMLFormRenderer,BrowsableAPIRenderer

class PublishDetailView(APIView):
renderer_classes = [HTMLFormRenderer,BrowsableAPIRenderer]
def get(self,request,pk):
publish_list=models.Publish.objects.filter(pk=pk).first()
ps=PublishSerializers(publish_list,many=False)
return Response(ps.data)
def put(self,request,pk):
publish_list = models.Publish.objects.filter(pk=pk).first()
ps=PublishSerializers(data=request.data,instance=publish_list)
if ps.is_valid():
ps.save() # update
return Response(ps.data)
else:
return Response(ps.errors)
def delete(self,request,pk):
models.Publish.objects.filter(pk=pk).delete()
return Response("")

浏览器访问(默认):

加上html样式渲染:

四、全局使用:

在settings中设置:

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

五、自定义显示模板:

from rest_framework.renderers import  TemplateHTMLRenderer
class BookDetailView(APIView):
renderer_classes = [TemplateHTMLRenderer]
def get(self,request,pk):
book_obj=models.Book.objects.filter(pk=pk).first()
bs=BookSerializers(book_obj,many=False)
return Response(bs.data,template_name='aa.html')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ title }}
{{ publishDate }}
</body>
</html>

rest_framework:响应器(渲染器)的更多相关文章

  1. rest-framework之响应器(渲染器)

    rest-framework之响应器(渲染器) 本文目录 一 作用 二 内置渲染器 三 局部使用 四 全局使用 五 自定义显示模版 回到目录 一 作用 根据 用户请求URL 或 用户可接受的类型,筛选 ...

  2. rest-framework解析器,url控制,分页,响应器,渲染器,版本控制

    解析器 1.json解析器 发一个json格式的post请求.后台打印: request_data---> {'title': '北京折叠'} request.POST---> <Q ...

  3. rest_framework之渲染器

    渲染器简介 什么是渲染器 根据 用户请求URL 或 用户可接受的类型,筛选出合适的 渲染组件. 渲染器的作用 序列化.友好的展示数据 渲染器配置 首先要在settins.py中将rest_framew ...

  4. rest-framework 响应器(渲染器)

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

  5. rest framework 解析器,渲染器

    解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 请求体相关字段: Accept:指定了接收的数据类型 Conte ...

  6. Restful framework【第十篇】响应器(渲染器)

    基本使用 -响应器(一般用默认就可以了) -局部配置 renderer_classes=[JSONRenderer,] -全局配置 'DEFAULT_RENDERER_CLASSES': ( 'res ...

  7. rest-framework框架——解析器、ur控制、分页、响应器、渲染器、版本

    一.解析器(parser) 解析器在reqest.data取值的时候才执行. 对请求的数据进行解析:是针对请求体进行解析的.表示服务器可以解析的数据格式的种类. from rest_framework ...

  8. 「Django」rest_framework学习系列-渲染器

    渲染器:作用于页面,JSONRenderer只是JSON格式,BrowsableAPIRenderer有页面,.AdminRenderer页面以admin形式呈现(需要在请求地址后缀添加?fromat ...

  9. rest_framework框架实现之(视图,路由,渲染器)

    一视图 一 在前面我们使用视图时继承的时APIview from rest_framework.response import Response from rest_framework.paginat ...

随机推荐

  1. zabbix | 离线安装agent

    zabbix | 离线安装agent 环境 centos6.7 zabbix-server 3.4 步骤 1. 下载rpm包 首先下载支持的插件 yum install yum-plugin-down ...

  2. cf949C

    题意简述:有n个点,每一个点都有一个权值,然后有m个条件,每一个条件是a[x]!=a[y],让选择最少的点且至少选择1个,然后让这个点的权值+1,使得条件仍满足 所有数对k取模 题解:如果a[x]+1 ...

  3. Mysql连接字符,字段函数concat()

    Mysql连接字符,字段函数concat() 可将多个字符串或字段连接,多个参数以逗号隔开 select concat('现在是:',new_date) from work

  4. generalization error

    泛化误差 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系? 准与确的关系 bias 偏差:模型越复杂,模型的偏差越小,方差越小,因此会出现overfitt ...

  5. claim、claimsidentity、claimsprincipal

    Claim表示一个声明单元,它用来组成ClaimsIdentity.ClaimsIdentity表示一个证件,例如身份证,身份证上面的名字表示一个Claim,身份证号也表示一个Claim,所有这些Cl ...

  6. [PAT] A1019 General Palindromic Number

    [题目] https://pintia.cn/problem-sets/994805342720868352/problems/994805487143337984 题目大意:给定一个N和b,求N在b ...

  7. 真·从零开始的Ubuntu+Apache+MySQL+PHP+phpstorm+xdebug下的debug环境搭建(纯小白向)

    费了好几天劲,终于把Linux下的开发环境如何设置搞的有点明白了,在此写篇博客庆祝一下,让大家以后少踩坑(缓慢更新中) 关键词 win10双系统装Ubuntu 下载U盘烧录工具 下载UbuntuLTS ...

  8. 从首个IMO季军谈起 作者 : 付云皓

    刚刚过去的IMO,中国史无前例地获得了第三名,也是自1997年来近20年首次跌出前二.感谢微信等社交软件,相信现在这个新闻已经以火箭的速度传播了. 作为一个与数学竞赛及IMO打了多年交道的人,我一直有 ...

  9. 积分题1之来自G.Han的一道积分题

    今天,收到G.Han的提问,第一个是计算积分 \[\int_0^{\infty}{\frac{\ln x}{(x^2+1)^n}dx}\]顿时不明觉厉,然后在宝典<Table of Integr ...

  10. 0级搭建类010-Oracle Linux 6.x安装(OEL 6.10) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...