DRF框架基本组件之请求&响应

1,请求

 

REST framework的Request类扩展了标准的HttpRequest,添加对REST framework的灵活请求解析和请求身份验证的支持。

 

request.data :返回请求主体的解析内容,包括所有解析的内容,文件(file) 和 非文件(non-file inputs);不仅仅支持表单数据,还支持JSON数据;支持解析 POST 以外的 HTTP method ,比如 PUT,PATCH

request.query_params :等同于 request.GET;为了代码更加清晰可读,推荐使用 request.query_params

request.parsers :当前使用的解析器列表

request.user:通常会返回 django.contrib.auth.models.User 的一个实例,但其行为取决于正在使用的身份验证策略;若请求未经身份验证,则返回 django.contrib.auth.models.AnonymousUser 的实例

request.auth:返回任何附加的认证上下文(authentication context),通常可能是请求经过身份验证的令牌(token)实例

request.authenticators:当前使用的认证器(authenticator)列表

 

2,响应

REST framework 的 Response 类是 Django 的 SimpleTemplateResponse 的子类

构造方法: Response(data, status=None, template_name=None, headers=None, content_type=None)

data: 响应的序列化数据。

status: 响应的状态代码。默认为200。

template_name: 选择 HTMLRenderer 时使用的模板名称。

headers: 设置 HTTP header,字典类型。

content_type: 响应的内容类型,通常渲染器会根据内容协商的结果自动设置,但有些时候需要手动指定。

3,Authentication(认证)

REST framework 提供了灵活的,每次请求的验证,让你能够: 对API的不同部分使用不同的身份验证策略。 支持使用多个身份验证策略。 * 提供与传入请求相关联的用户和令牌信息。

.user

request.user 通常返回一个 django.contrib.auth.models.User 实例, 尽管该行为取决于所使用的的认证策略。

如果请求未认证则 request.user 的默认值为 django.contrib.auth.models.AnonymousUser的一个实例。

更多详细信息请查阅 authentication documentation.

.auth

request.auth 返回任何其他身份验证上下文。 request.auth 的确切行为取决于所使用的的认证策略,但它通常可以是请求被认证的token的实例。

如果请求未认证或者没有其他上下文,则 request.auth 的默认值为 None.

更多详细信息请查阅 authentication documentation.

.authenticators

APIView 类或 @api_view 装饰器将根据在view中设置的 authentication_classes 或基于DEFAULT_AUTHENTICATORS 设置,确保此属性自动设置为 Authentication 实例的列表。

你通常并不需要访问此属性。

posted on 2019-06-16 00:54  Orvis  阅读(79)  评论(0编辑  收藏  举报

导航