回应

不同于基本的HttpResponse对象,TemplateResponse对象保留先前由视图提供给计算响应上下文的细节。该响应的最终输出,不计算直到需要它,以后在响应过程。

- Django文档

REST框架支持HTTP提供了一个内容协商Response类,它允许你返回一个可呈现为多种内容类型,根据不同的客户端请求的内容。

Response类的子类Django的SimpleTemplateResponseResponse对象初始化的数据,这应该包括原生的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的更多相关文章

  1. .NET CORE 2.0之 httpcontext

    HttpContext  在之前的.NET framework 是一个非常常用且强大的类,在.NET CORE2.0中要像以前用是不太方便的了, 要是用sesson 首先需要在startup 的Con ...

  2. [2017 ACL] 对话系统

    Long Papers [Domain adaptation ] 1. Adversarial Adaptation of Synthetic or Stale Data ( Cited by 14 ...

  3. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  4. Django Rest framework基础使用之Request/Response

    1.Request restframework提供了一个Request对象(rest_framework.request.Request) Request对象继承了Django默认的HttpReque ...

  5. Django REST framework 第二章 Request and Response

    此章节开始真正的撰写REST framework的核心代码,介绍一系列必要的建立设计 Request Objects REST framework介绍了一个Request对象用来扩展常规的HttpRe ...

  6. Django restful Framework 之Requests and Response 方法

    前言: 本章主要介绍REST framework 内置的必要的功能. Request objects Response objects Status codes Wrapping API views ...

  7. DRF (Django REST framework) 中的Request 与 Response

    DRF中的Request 与 Response 1. Request - REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST f ...

  8. Entity Framework 6 Recipes 2nd Edition(9-1)译->用Web Api更新单独分离的实体

    第九章 在N层结构的应用程序中使用EF 不是所有的应用都能完全地写入到一个单个的过程中(就是驻留在一个单一的物理层中),实际上,在当今不断发展的网络世界,大量的应用程序的结构包含经典的表现层,应用程, ...

  9. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

随机推荐

  1. Codeforces Round #654 (Div. 2) D. Grid-00100 (构造)

    题意:构造一个\(n\)x\(n\)只含\(0\)和\(k\)个\(1\)的矩阵,统计每一行每一列\(1\)的sum,然后构造一个权值最大行和最小行的差的平方加权值最大列和最小列的差的平方的最小和(\ ...

  2. Entity Framework (EF) Core学习笔记 1

    1. Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台的数据访问技术,它还是一 种对象关系映射器 (ORM),它使 .NET 开发人员能够使用面向对象的思想处理数据 ...

  3. Selenium和ChromeDriver下载地址

    Selenium 官方所有版本: https://selenium-release.storage.googleapis.com/index.html 镜像所有版本:https://npm.taoba ...

  4. DOCKER - 构建一个docker镜像并跑起来

    一.有个基础镜像 1.基础镜像的选择 当前市场有众多可选择的基础docker镜像,可参考: https://blog.csdn.net/nklinsirui/article/details/80967 ...

  5. Verilog基础语法总结

    去年小学期写的,push到博客上好了 Verilog 的基本声明类型 wire w1; // 线路类型 reg [-3:4] r1; // 八位寄存器 integer mem[0:2047]; // ...

  6. json-server All In One

    json-server All In One https://github.com/typicode/json-server#getting-started $ npm i -g json-serve ...

  7. Vue & Sentry sourcemaps All In One

    Vue & Sentry sourcemaps All In One vue & sentry & sourcemaps https://docs.sentry.io/plat ...

  8. GitHub new features 2020 All In One

    GitHub new features 2020 All In One Discussions Discussions is the space for your community to have ...

  9. js 实现前端路由的方法

    js 实现前端路由的方法 前端路由原理 History API https://developer.mozilla.org/en-US/docs/Web/API/History_API https:/ ...

  10. SVG & getBBox

    SVG & getBBox https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement/getBBox const ...