Rest-framework-API参考-Responses

Responses

Unlike basic HttpResponse objects, TemplateResponse objects retain the details of the context that was provided by the view to compute the response. The final output of the response is not computed until it is needed, later in the response process.

不像基本HttpResponse对象,TemplateResponse对象保留的背景下,被认为提供了计算响应的细节。在响应过程中,直到需要时,才计算响应的最终输出。

Django documentation

REST framework supports HTTP content negotiation by providing aResponseclass which allows you to return content that can be rendered into multiple content types, depending on the client request.

REST框架通过提供响应类来支持HTTP内容协商,它可以根据客户端请求返回可以呈现为多个内容类型的内容。

TheResponseclass subclasses Django'sSimpleTemplateResponse.Responseobjects are initialised with data, which should consist of native Python primitives. REST framework then uses standard HTTP content negotiation to determine how it should render the final response content.

响应类子类的simpletemplateresponse。响应对象的初始化数据,其中应包括原生Python原语。REST框架然后使用标准的HTTP内容协商来决定它应该如何呈现最终的响应内容。

There's no requirement for you to use theResponseclass, you can also return regularHttpResponseorStreamingHttpResponseobjects from your views if required. Using theResponseclass simply provides a nicer interface for returning content-negotiated Web API responses, that can be rendered to multiple formats.

在你使用响应类没有要求,如果在你的视图里需要,你也可以返回HttpResponse对象定期或StreamingHttpResponse。使用响应类只提供了一个更好的界面,用于返回内容协商的web API响应,可以呈现为多种格式。

Unless you want to heavily customize REST framework for some reason, you should always use anAPIViewclass or@api_viewfunction for views that returnResponseobjects. Doing so ensures that the view can perform content negotiation and select the appropriate renderer for the response, before it is returned from the view.

除非你想重因故自定义REST的框架,你应该总是使用一个APIView类或@api_view功能视图返回响应对象。这样可确保视图可以进行谈判的内容和选择响应适当的渲染,才从视图返回。

Creating responses

Response()

Signature:Response(data, status=None, template_name=None, headers=None, content_type=None)

Unlike regularHttpResponseobjects, you do not instantiateResponseobjects with rendered content. Instead you pass in unrendered data, which may consist of any Python primitives.

不同于常规的HttpResponse对象,你没有实例化响应对象呈现的内容。相反,你通过在未着色的数据,它可以由任何Python原语组成。

The renderers used by theResponseclass cannot natively handle complex datatypes such as Django model instances, so you need to serialize the data into primitive datatypes before creating theResponseobject.

由响应类使用渲染器本身不能处理复杂的数据类型,如Django模型实例,所以你需要将数据序列化到原始数据类型之前创建响应对象。

You can use REST framework'sSerializerclasses to perform this data serialization, or use your own custom serialization.

您可以使用REST框架的序列化程序类来执行此数据序列化,或使用您自己的自定义序列化。

Arguments:

data: The serialized data for the response.序列化数据的响应。

status: A status code for the response. Defaults to 200. See alsostatus codes.为响应状态代码。默认为200。参见状态码。

template_name: A template name to use ifHTMLRendereris selected  .使用是否HTMLRenderer选择模板名称。

headers: A dictionary of HTTP headers to use in the response.一个HTTP头词典使用的响应。

content_type: The content type of the response. Typically, this will be set automatically by the renderer as determined by content negotiation, but there may be some cases where you need to specify the content type explicitly.响应的内容类型。通常情况下,这将自动被渲染的内容协商确定,但可能会有一些情况下,你需要指定内容类型明确。

Attributes属性

.data

The unrendered content of aRequestobject.

.status_code

The numeric status code of the HTTP response.

.content

The rendered content of the response. The.render()method must have been called before.contentcan be accessed.

.template_name

Thetemplate_name, if supplied. Only required ifHTMLRendereror some other custom template renderer is the accepted renderer for the response.

.accepted_renderer

The renderer instance that will be used to render the response.

Set automatically by theAPIViewor@api_viewimmediately before the response is returned from the view.

.accepted_media_type

The media type that was selected by the content negotiation stage.

Set automatically by theAPIViewor@api_viewimmediately before the response is returned from the view.

.renderer_context

A dictionary of additional context information that will be passed to the renderer's.render()method.

Set automatically by theAPIViewor@api_viewimmediately before the response is returned from the view.

Standard HttpResponse attributes

TheResponseclass extendsSimpleTemplateResponse, and all the usual attributes and methods are also available on the response. For example you can set headers on the response in the standard way:

response=Response()response['Cache-Control']='no-cache'

.render()

Signature:.render()

As with any otherTemplateResponse, this method is called to render the serialized data of the response into the final response content. When.render()is called, the response content will be set to the result of calling the.render(data, accepted_media_type, renderer_context)method on theaccepted_rendererinstance.

You won't typically need to call.render()yourself, as it's handled by Django's standard response cycle.


provided by由…规定

compute计算,估算;推断;用计算机计算;计算

final output末级输出

Response class反应类

depending on依据,根据

consist of包括;由…组成;由...组成

primitives原始人(primitive的复数形式)

final response最终特性

no requirement无要求

for you为你;面向你;献给你

do not不;勿

pass in进入

unrendered未抹灰的

consist of包括;由…组成;由...组成

Response class反应类

natively生来地,天然地

such as诸如;像,例如;譬如

Serializer串行器;编程语言中,可被序列化的

status code状况代号,状态码

See also请参阅

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容