目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

Python全系列 教程

3567个小节阅读:5929.9k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(727)
赞(0)

请求和响应对象介绍

image-20211203171015292

REST framework引入了2个新的对象:Request和Response

Request

rest_framework.request.Request

该对象扩展了常规的HttpRequest ,增加了对REST框架灵活的请求解析和请求认证的支持

官网:https://www.django-rest-framework.org/api-guide/requests/#requests

主要属性:

  • data

    这个属性类似django的request的POST和FILES属性:

    • django的request.POST:只能获取POST请求的form表单数据

    • rest_framework的request.data:

      • 包括所有已解析的内容,包括文件和非文件输入
      • 支持'POST', 'PUT' 和'PATCH' 方法
      • 支持REST框架的灵活请求解析,而不仅仅支持表单数据。例如,可以传入JSON数据
  • query_params

    就是标准的request.GET属性,不过从命名角度来说,更加合理,因为不是只有GET请求才有GET查询参数

Response

rest_framework.response.Response

网站:https://www.django-rest-framework.org/api-guide/responses/#responses

该类是Django的 SimpleTemplateResponse 的子类,使用python原始对象进行数据初始化,然后,REST框架使用标准HTTP内容协商来确定它应如何呈现最终的响应内容

初始化

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

  • data:响应的序列化数据,如果是复杂对象,如模型实例,需要在传入之前序列化为原始数据类型(如dict等)
  • status:响应的状态代码,默认为200
  • template_nameHTMLRenderer选择时使用的模板名称
  • headers:要在响应中使用的HTTP标头的字典
  • content_type:响应的内容类型。通常,这将由内容协商确定的渲染器自动设置,但在某些情况下您可能需要明确指定内容类型

属性

  • data:响应的未呈现的序列化数据

  • status_code:响应状态码,建议使用HTTP_200_OK 这样的常量,而不是 200 这样的数字,常量给每个状态代码提供更明确的标识符

    更详细的见:https://www.django-rest-framework.org/api-guide/status-codes/

  • content:渲染后的响应内容,调用此属性前需要调用.render()方法渲染

  • template_name:指定的模板名

  • accepted_renderer:将用于呈现响应的呈现器实例,在视图返回响应之前由APIView@api_view自动设置

  • accepted_media_type:内容协商阶段选择的媒体类型,在视图返回响应之前由APIView@api_view自动设置

  • renderer_context:需要渲染的上下文字典对象,在视图返回响应之前由APIView@api_view自动设置

实时学习反馈

1. _____对象扩展了常规的HttpRequest ,增加了对REST框架灵活的请求解析和请求认证的支持

A rest_framework.request.request

B rest_framework.request.Response

C rest_framework.request.Request

D rest_framework.response.Request

答案

1=>C

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2