rest framework Response
回应
不同于基本的HttpResponse对象,TemplateResponse对象保留先前由视图提供给计算响应上下文的细节。该响应的最终输出,不计算直到需要它,以后在响应过程。
- Django文档
REST框架支持HTTP提供了一个内容协商Response
类,它允许你返回一个可呈现为多种内容类型,根据不同的客户端请求的内容。
在Response
类的子类Django的SimpleTemplateResponse
。 Response
对象初始化的数据,这应该包括原生的Python原语。REST框架将使用标准的HTTP内容协商,以决定应如何使最终响应的内容。
有没有要求你使用Response
类,您还可以返回定期HttpResponse
或者StreamingHttpResponse
如果需要的对象从您的观点。使用Response
类简单地提供内容返回协商的Web API响应,可以呈现多种格式有着更好的接口。
除非你想大量定制REST框架出于某种原因,你应该总是使用APIView
类或@api_view
用于观点,即返回功能Response
对象。这样做可以确保视图可以进行内容协商,并选择适当的渲染器的响应,它从视图返回之前。
创建响应
响应()
签名: Response(data, status=None, template_name=None, headers=None, content_type=None)
不同于常规的HttpResponse
对象,你不要实例Response
与呈现的内容对象。相反,你在未渲染的数据,这可以由任何Python的原语的通过。
由所使用的渲染器Response
类本身不能处理复杂的数据类型,如Django的模型实例,所以你需要在创建之前,序列化数据到基本数据类型Response
的对象。
您可以使用REST框架的Serializer
类来执行这个数据序列化,或者使用自己的自定义序列化。
参数:
data
:对该响应的序列化的数据。status
:用于响应状态代码。默认为200.另请参见状态码。template_name
:如果要使用模板名称HTMLRenderer
被选中。headers
:HTTP标头的字典来在响应中使用。content_type
:内容类型的响应。通常情况下,这将自动渲染器,通过内容协商确定设置,但如果您需要明确指定内容类型可能会有一些情况。
属性
。数据
响应的非再生,序列化的数据。
.status_code
HTTP响应的数字状态代码。
。内容
响应的呈现的内容。在.render()
必须之前已经调用的方法.content
可以被访问。
.template_name
的template_name
,如果提供。仅在必要时HTMLRenderer
或其他自定义模板渲染器的响应公认的渲染器。
.accepted_renderer
将被用来渲染响应的渲染器实例。
通过自动设置APIView
或@api_view
立即响应从视图返回之前。
.accepted_media_type
这是由内容协商阶段选择的介质类型。
通过自动设置APIView
或@api_view
立即响应从视图返回之前。
.renderer_context
额外的上下文信息的字典,这些将被传递到渲染器的.render()
方法。
通过自动设置APIView
或@api_view
立即响应从视图返回之前。
标准的HttpResponse属性
在Response
类扩展SimpleTemplateResponse
,和所有常见的属性和方法也可在回应。例如,您可以在标准的方式响应设置头:
response = Response()
response['Cache-Control'] = 'no-cache'
.render()
签名: .render()
与任何其他TemplateResponse
被调用此方法以使反应成最终的应答内容的序列化的数据。当.render()
被调用时,响应内容将被设置为调用的结果.render(data, accepted_media_type, renderer_context)
对方法accepted_renderer
实例。
你通常不会需要调用.render()
自己,因为它是由Django的标准响应周期来处理。
rest framework Response的更多相关文章
- .NET CORE 2.0之 httpcontext
HttpContext 在之前的.NET framework 是一个非常常用且强大的类,在.NET CORE2.0中要像以前用是不太方便的了, 要是用sesson 首先需要在startup 的Con ...
- [2017 ACL] 对话系统
Long Papers [Domain adaptation ] 1. Adversarial Adaptation of Synthetic or Stale Data ( Cited by 14 ...
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- Django Rest framework基础使用之Request/Response
1.Request restframework提供了一个Request对象(rest_framework.request.Request) Request对象继承了Django默认的HttpReque ...
- Django REST framework 第二章 Request and Response
此章节开始真正的撰写REST framework的核心代码,介绍一系列必要的建立设计 Request Objects REST framework介绍了一个Request对象用来扩展常规的HttpRe ...
- Django restful Framework 之Requests and Response 方法
前言: 本章主要介绍REST framework 内置的必要的功能. Request objects Response objects Status codes Wrapping API views ...
- DRF (Django REST framework) 中的Request 与 Response
DRF中的Request 与 Response 1. Request - REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST f ...
- Entity Framework 6 Recipes 2nd Edition(9-1)译->用Web Api更新单独分离的实体
第九章 在N层结构的应用程序中使用EF 不是所有的应用都能完全地写入到一个单个的过程中(就是驻留在一个单一的物理层中),实际上,在当今不断发展的网络世界,大量的应用程序的结构包含经典的表现层,应用程, ...
- Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化
9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...
随机推荐
- 二叉排序树的构造 && 二叉树的先序、中序、后序遍历 && 树的括号表示规则
二叉排序树的中序遍历就是按照关键字的从小到大顺序输出(先序和后序可没有这个顺序) 一.以序列 6 8 5 7 9 3构建二叉排序树: 二叉排序树就是中序遍历之后是有序的: 构造二叉排序树步骤如下: 插 ...
- 行业动态 | 腾讯合作商Babylon使用Cassandra保护患者数据并提高医疗效果
医疗世界正在快速朝向个性化和低成本的方向发展,Babylon Health看到了这样的机会--通过开创性的云端应用来大幅扩张和改进他们所提供的服务. 通过使用基于Apache Cassandra的 ...
- streamlink 安装使用
CentOS 安装: pip install streamlink 使用: #查看视频信息 streamlink $URL #下载视频 streamlink $URL best streamlink ...
- 如何使用Gephi工具进行可视化复杂网络图
在Gephi安装官网中也介绍了一些如何使用该工具的方法,我将根据自己的数据和可视化的图片进行介绍 第一步:整理数据格式,我的数据是.csv格式的(.xlsx,.xls等等) 数据第一行第一列必须是相同 ...
- 获取txt编码方式
在操作txt的时候,有时会出现乱码,这是因为没有使用正确的编码方式来操作txt,我们需要先获取txt的编码方式,再进行读写操作.下面是获取txt编码的方法: /// <summary> / ...
- Leetcode(105)-从前序与中序遍历序列构造二叉树
根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15, ...
- CodeForces 348D Turtles(LGV定理)题解
题意:两只乌龟从1 1走到n m,只能走没有'#'的位置,问你两只乌龟走的时候不见面的路径走法有几种 思路:LGV定理模板.但是定理中只能从n个不同起点走向n个不同终点,那么需要转化.显然必有一只从1 ...
- SMB relay
SMB relay 0x00 SMB服务 先来了解一下什么是 SMB 服务,SMB(Server Message Block)是一个协议名称,用它可以共享计算机之间的文件.打印机.串口等,通过 SMB ...
- JavaScript中的对象引用和复制
在JavaScript分为两种原始值和引用值类型,原始值之间的复制是值对值得复制,而引用类型则是引用对引用的复制: // 原始值的复制: let num1 = 1; let num2 = num1; ...
- 计量经济学导论10:ARIMA模型
目录 ${\rm ARIMA}$ 模型 滞后算子 ${\rm MA}(q)$ 模型 ${\rm MA}(1)$ 模型 ${\rm MA}(q)$ 模型 ${\rm AR}(p)$ 模型 ${\rm A ...