Rest-framework-API参考-Requests

Requests请求

If you're doing REST-based web service stuff ... you should ignore request.POST.

— Malcom Tredinnick,Django developers group

REST framework'sRequestclass extends the standardHttpRequest, adding support for REST framework's flexible request parsing and request authentication.

REST架构的请求类扩展了标准的HttpRequest,加入支持REST架构的灵活解析请求和请求认证。

Request parsing请求解析

REST framework's Request objects provide flexible request parsing that allows you to treat requests with JSON data or other media types in the same way that you would normally deal with form data.

REST框架的请求对象提供了灵活的请求解析,允许您以与通常处理表单数据的方式相同的方式处理JSON数据或其他媒体类型的请求。

.data

request.datareturns the parsed content of the request body. This is similar to the standardrequest.POSTandrequest.FILESattributes except that:

request.data返回解析内容请求体。这是类似于标准的request.post和request.files属性。除了:

It includes all parsed content, includingfile and non-fileinputs.

包括所有分析的内容,包括文件和非文件输入。

It supports parsing the content of HTTP methods other thanPOST, meaning that you can access the content ofPUTandPATCHrequests.

支持解析HTTP方法以外的内容后,意味着你可以访问请求的内容和补丁。

It supports REST framework's flexible request parsing, rather than just supporting form data. For example you can handle incoming JSON data in the same way that you handle incoming form data.

支持REST架构的灵活的解析请求,而不是仅仅支持表单数据。例如,您可以像传入表单数据一样处理传入的JSON数据。

For more details see theparsers documentation.

.query_params

request.query_paramsis a more correctly named synonym forrequest.GET.

For clarity inside your code, we recommend usingrequest.query_paramsinstead of the Django's standardrequest.GET. Doing so will help keep your codebase more correct and obvious - any HTTP method type may include query parameters, not justGETrequests.

request.query_params是更正确地命名为request.get同义词。

在你的代码清晰,我们建议使用request.query_params代替Django的标准request.get。这样做将有助于让你的代码更正确、明显的任何HTTP方法类型包括查询参数,不只是GET请求。

.parsers

TheAPIViewclass or@api_viewdecorator will ensure that this property is automatically set to a list ofParserinstances, based on theparser_classesset on the view or based on theDEFAULT_PARSER_CLASSESsetting.

这个APIView类或@api_view装饰将确保此属性自动设置为列表解析器实例,基于parser_classes视图上设置或基于DEFAULT_PARSER_CLASSES设置。

You won't typically need to access this property.

Note:If a client sends malformed content, then accessingrequest.datamay raise aParseError. By default REST framework'sAPIViewclass or@api_viewdecorator will catch the error and return a400 Bad Requestresponse.

If a client sends a request with a content-type that cannot be parsed then aUnsupportedMediaTypeexception will be raised, which by default will be caught and return a415 Unsupported Media Typeresponse.

注意:如果一个客户端发送格式不正确的内容,然后访问request.data可能引起错误分析。默认情况下,REST的apiview框架类或@api_view装饰将捕获错误,并返回一个400错误的请求的响应。

如果一个客户端发送一个内容类型,不能被解析并unsupportedmediatype将引发异常的请求,默认情况下会被抓到并返回一个415响应不支持的媒体类型。

Content negotiation

The request exposes some properties that allow you to determine the result of the content negotiation stage. This allows you to implement behaviour such as selecting a different serialisation schemes for different media types.

该请求公开一些属性,该属性允许您确定内容协商阶段的结果。这允许您执行行为等不同媒体类型不同的序列化方案选择。

.accepted_renderer

The renderer instance what was selected by the content negotiation stage.

.accepted_media_type

A string representing the media type that was accepted by the content negotiation stage.

Authentication

REST framework provides flexible, per-request authentication, that gives you the ability to:

Use different authentication policies for different parts of your API.

Support the use of multiple authentication policies.

Provide both user and token information associated with the incoming request.

认证

REST框架提供灵活的,每个请求认证,这给你的能力:

●使用不同的认证政策,你的API的不同部分。

●支持多种认证政策的使用。

●提供用户令牌信息与请求相关的。

.user

request.usertypically returns an instance ofdjango.contrib.auth.models.User, although the behavior depends on the authentication policy being used.

If the request is unauthenticated the default value ofrequest.useris an instance ofdjango.contrib.auth.models.AnonymousUser.

For more details see theauthentication documentation.

request.user通常返回django.contrib.auth.models.User实例,虽然行为取决于所使用的认证政策。

如果请求是未经身份验证的request.user默认值是django.contrib.auth.models.AnonymousUser实例。

有关详细信息请参见验证文档。

.auth

request.authreturns any additional authentication context. The exact behavior ofrequest.authdepends on the authentication policy being used, but it may typically be an instance of the token that the request was authenticated against.

If the request is unauthenticated, or if no additional context is present, the default value ofrequest.authisNone.

For more details see theauthentication documentation.

request.auth返回的任何额外的认证上下文。对request.auth准确的行为取决于认证策略被使用,但它可能是典型的令牌请求认证针对实例。

如果请求是未经验证的,如果没有额外的上下文是存在的,request.auth默认值是没有的。

.authenticators

TheAPIViewclass or@api_viewdecorator will ensure that this property is automatically set to a list ofAuthenticationinstances, based on theauthentication_classesset on the view or based on theDEFAULT_AUTHENTICATORSsetting.

You won't typically need to access this property.

APIView类或@api_view装饰将确保此属性自动设置为列表中的Authenticationinstances,基于authentication_classes视图上设置或基于default_authenticators设置。

您通常不需要访问此属性。

Browser enhancements

REST framework supports a few browser enhancements such as browser-basedPUT,PATCHandDELETEforms.

REST框架支持一些浏览器增强功能,如基于浏览器的PUT,PATCH和DELETE表单。

.method

request.methodreturns theuppercasedstring representation of the request's HTTP method.

Browser-basedPUT,PATCHandDELETEforms are transparently supported.

request.method返回请求的HTTP方法的大写字母的字符串表示形式。

基于浏览器的PUT,PATCHandDELETE表单是透明支持的。

For more information see thebrowser enhancements documentation.

.content_type

request.content_type, returns a string object representing the media type of the HTTP request's body, or an empty string if no media type was provided.

You won't typically need to directly access the request's content type, as you'll normally rely on REST framework's default request parsing behavior.

If you do need to access the content type of the request you should use the.content_typeproperty in preference to usingrequest.META.get('HTTP_CONTENT_TYPE'), as it provides transparent support for browser-based non-form content.

For more information see thebrowser enhancements documentation.

request.content_type,字符串对象代表了回归的媒体类型HTTP的身体,一个空的字符串,如果没有提供媒体类型。

.stream

request.streamreturns a stream representing the content of the request body.

You won't typically need to directly access the request's content, as you'll normally rely on REST framework's default request parsing behavior.

Standard HttpRequest attributes

As REST framework'sRequestextends Django'sHttpRequest, all the other standard attributes and methods are also available. For example therequest.METAandrequest.sessiondictionaries are available as normal.

Note that due to implementation reasons theRequestclass does not inherit fromHttpRequestclass, but instead extends the class using composition.

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的阅读 13,433评论 5 6
  • 儿子: 昨天你的心灵受伤了,妈妈很心疼,看得出来爸爸也心疼。昨天前天,我们作为成年人,没有控制好自己,让你无辜受到...
    芬妮80阅读 477评论 1 1
  • 打开官方网站python.org 进入下载界面,选择Windows版本 默认安装就可以了 安装完成后还需要设置环境...
    luooove阅读 14,585评论 0 3
  • 早上应孩子昨晚的要求,在6点钟就叫他起床,他答应着,睡眼惺忪、半梦半醒的穿着衣服。看着孩子这么辛苦的样子,既心疼又...
    武汉的笑靥如花阅读 288评论 1 7