首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DRF的Request对象和Response对象

同样,DRF建议使用封装过的Response来返回HTTP响应,使用该类构造响应对象时,响应的具体数据内容会被转换(render渲染)成符合前端需求的类型。...Request.data Request对象的数据是自动根据前端发送数据的格式进行解析之后的结果。这样后端使用统一的方式来获取数据,无论前端传递的是表单,json还是其它格式。...) 包含了对POST、PUT、PATCH请求方式解析后的数据; 利用了REST framework的parsers解析器,不仅支持表单类型数据,也支持JSON数据。...无论请求方式是什么,URL的参数,我们在DRF总是使用request.query_params来获取。...不过DRF官方还是建议我们对继承自APIView类或使用@api_view进行装饰的函数,都返回Response对象。 使用了Response对象返回,默认会带有一定的样式。

1.6K40
您找到你想要的搜索结果了吗?
是的
没有找到

Django REST Framework-信号

DRF的信号是基于Python标准库的signal模块实现的。DRF的信号通常用于以下情况:在对象创建、保存、删除等事件发生时执行某些操作。...在请求处理过程的某些特定时间点执行某些操作,请求前、请求后、异常处理等。DRF提供了多个信号,可以通过导入django.dispatch.Signal来访问这些信号。...以下是一个简单的示例,演示如何在对象保存时执行某些操作:from django.db.models.signals import post_savefrom django.dispatch import...这些信号可以帮助我们在请求处理过程执行自定义的操作,记录请求日志、检查授权等。...我们可以在log_request函数记录请求日志,请求时间、请求方法、请求路径等。

7.2K101

DRF工程搭建

= BookInfo fields = '__all__' model 指明该序列化器处理的数据字段从模型类BookInfo参考生成 fields 指明该序列化器包含模型类的哪些字段...运行测试 python manage.py runserver 在浏览器输入网址127.0.0.1:8000,可以看到DRF提供的API Web浏览页面: ?...1)点击链接127.0.0.1:8000/books/ 可以访问获取所有数据的接口,呈现如下页面: ? ? 2)在页面底下表单部分填写图书信息,可以访问添加新图书的接口,保存新书: ?...点击POST后,返回如下页面信息: ? 3)在浏览器输入网址127.0.0.1:8000/books/1/,可以访问获取单一图书信息的接口(id为1的图书),呈现如下页面: ?...4)在页面底部表单填写图书信息,可以访问修改图书的接口: ? 点击PUT,返回如下页面信息: ? 5)点击DELETE按钮,可以访问删除图书的接口: ? 返回,如下页面: ?

1.1K10

drf之请求、响应、视图

drf提供了Parser解析器,在接收到请求之后会根据Content-Type指明的请求数据类型(json、表单等)将请求数据进行解析,解析为类字典 对象保存到Request 对象之中...类似于Django中标准的request.POST和 request.FILES属性,但提供如下特性: 1 包含了解析之后的文件和非文件数据 2 包含了对POST、PUT、PATCH请求方式解析后的数据...3 利用了REST framework的parsers解析器,不仅支持表单类型数据,也支持JSON数据 .query_params request.query_params与Django标准的...如果前端请求未进行Accept声明,则会采用默认方式处理响应数据,我们可以通过配置来修改默认响应格式。 可以在rest_framework.settings 查找所有的drf默认配置项。...drf 会自动使用renderer 渲染器处理该数据

2.1K20

不会DRF?源码都分析透了确定不来看?

数据 -修改-----》put,patch--->实际编码,基本都用put http://127.0.0.1:8000/books/1/ body体传入修改的数据 -删除一个---》delete...全部修改:修改id为1的数据,这里尽量在body体里写全参数 局部修改:修改id为1的数据,修改啥写啥 删除一条数据:删除id为2的数据 CBV源码流程分析 因为DRF...多态、组合、反射 Django View和DRF APIView的小插曲 ps:不管是DRF的APIView还是乱七八糟的xxView,最后只要继承了Django的View就是视图类 DRF之APIView...提交的数据,可以处理多种格式的数据,无论前端传什么编码post提交的数据都在data ps:原来提交的数据在request.POST里,有局限性只能处理urlencoded和formdata编码格式...import QueryDict 注意:如果前端提交过来多个同名数据也就是form表单input标签的name属性设置了多个重名数据就不能使用request.POST.get('user')来获取了

1.3K10

Django&DRF重点内容大盘点

2)返回的时候用到了 HttpResponse这一命令返回响应对象 1.3.2url地址的配置 1.在子应用的urls.py文件设置当前子应用url地址和视图对应关系 urlpatterns =...1.6.3通过请求体传递数据 1)post表单提交的数据 /form/ def form_data(request): name = request.POST.get('name') age...(了解即可) 1.6.5request对象的属性 request请求对象的属性 说明 GET 查询字符串参数 POST 请求体重的表单数据 body 请求体中原始的bytes数据 method 请求方式...地址采用不同的请求方式执行不同的操作 GET(获取) POST(新增) PUT(修改) DELETE(删除) 3)过滤参数可以放在查询字符串 4)响应数据返回&响应状态码 状态码 说明 200 获取或修改成功...1.将数据数据序列化为前端所需要的格式,并返回 2.将前端发送的数据反序列化为模型类对象,并保存到数据 2.4DRF框架 2.4.1作用:大大提高RestAPI接口开发效率 2.5序列化器Serializer

5.9K20

Vue+Django2.0 REST framework 打造前后端分离的生鲜电商项目(五)商品列表页

在views_base,我被 JsonResponse,HttpResponse这两个模块之间的有什么不同所引起好奇心,都是返回字符串,一个可以返回json,而另一个需要添加一些设置才能返回json。...基于一条真理: 1 网络传输的数据都是字符串! 我将HTTPResponse除了要返回的字符串,其他参数都删了,代替JsonResponse来作为return值。...name字段(昵称),而drf在找的是AbstractUser的username字段(用户名),没找到所以报错 解决方法:将UserProfile表的__str__方法改成返回username: 1...它支持解析HTTP方法以外的内容POST,这意味着你可以访问内容PUT和PATCH请求。 它支持REST框架的灵活请求解析,而不仅仅是支持表单数据。...例如,您可以像处理传入表单数据一样处理传入的JSON数据。 request.query_params相当于django本身的request.GET。

4.8K61

Python进阶39-drf框架(一)

""" 接口:联系两个物质的媒介,完成信息交互 web程序:联系前台页面与后台数据库的媒介 web接口组成: url:长得像返回数据的url链接 请求参数:前台按照指定的key提供数据给后台...search=西&ordering=-price&limit=3 响应数据: 1) http请求的响应会有响应状态码,接口用来返回操作的资源数据,可以拥有 操作数据结果的 状态码 status...POST /collection:返回新生成的资源对象 PUT /collection/resource:返回完整的资源对象 PATCH /collection/resource:返回完整的资源对象...print(request.query_params) return Response('drf post ok') 总结: # 1) drf 对原生request...,所有数据数据都被解析到data 渲染模块 浏览器和Postman请求结果渲染数据的方式不一样 ---- 源码入口 APIView类的dispatch方法:self.response = self.finalize_response

4K30

用 Vue 和 Django 快速搭建前后端分离项目

axios 类似于 AJAX 的功能,主要为了访问后端 api 来获取数据。 mockjs 主要用于模拟后端的 api 接口返回数据。...Mock.mock('api/users/', (req, res) => { //当post或get请求到/api/users/路由时Mock会拦截请求并返回上面的数据 var list =...再搭建后端 这里以 DRF(Django REST Framework) 为例。如果对 DRF 还是第一次接触,建议先按官方的教程[2]走一遍。...接下来访问 http://127.0.0.1:8000/user.json 可以看到返回如下 json 格式的数据。 后端开发工作至此告一段落。...实际开发,我们在请求后端接口时的 url 一般不会填写 ip 地址和端口,而是 'api/xxx' 这种形式,这里是为了展示如何在开发环境进行前后端联调而写成此种形式。

3.7K20

Django-DRF | APIView 视图类

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...一、DRF 框架所有视图类 最基础:django 自带的 views 类 DRF 框架最基础的视图类:views.APIView DRF 框架工具视图:generics GenericAPIView...:该视图类的基类 mixins 视图工具集: RetrieveModelMixin:retrieve 单取 ListModelMixin:list 群取 CreateModelMixin:create...单局部修改 DestroyModelMixin:destroy 单删 viewsets 视图集 以上视图都是基于 django 自带的 views 进行相关方法的封装 二、APIView 实现 get post...views.BookListView.as_view()), class BookListView(APIView): def get(self, request): # 数据库查询

1.1K20

DRF框架(一)——drf请求生命周期是什么?请求模块request咋用?渲染模块render咋用?

目录 安装DRF框架 drf请求生命周期流程 请求模块:request对象 渲染模块: 安装DRF框架 pip install djangorestframework drf请求生命周期流程 根据应用...,得到请求的响应结果, 返回给前台所以以后直接就从APIView的dispatch入口看源码 请求模块:request对象 1) drf 对原生request做了二次封装,设置request....,所有数据数据都被解析到data get请求:url拼接的参数通过request.query_params获取 post请求:所有请求方式所携带的数据包都是通过request.data获取 请求模块最终的结论就是...:获取数据有两种方式 query_params和data(通过parser解析数据传到data) 使用drf写的get/post请求 渲染模块: 自定义全局配置:所有视图类统一处理,在项目的settings.py...get ok 2') def post(self, request, *args, **kwargs): return Response('drf post ok 2')

89510

Go语言HTTP服务实现GET和POST请求的同时支持

请求表单数据 formData := r.Form // 处理POST请求的逻辑 // 这里可以根据表单数据做相应的处理 // 返回一个简单的成功消息给客户端...如果是POST请求,则首先解析请求体表单数据,然后我们可以根据表单数据做相应的处理。最后,向客户端返回一个简单的成功消息。 现在,我们的HTTP服务已经支持GET和POST请求了。...请求表单数据 formData := r.Form // 处理POST请求的逻辑 // 这里可以根据表单数据做相应的处理 // 返回一个简单的成功消息给客户端...对于GET请求,我们直接返回一个简单的消息;对于POST请求,我们首先解析请求体表单数据,然后根据表单数据做相应的处理,并向客户端返回一个成功消息。...同时,我们还介绍了如何在同一个HTTP服务实现对GET和POST请求的支持,使得我们的服务更加灵活和全面。

16210

DRF入门

http://127.0.0.1:8000/myapp/api/user/1/ #对于指定数据进行更新,删除,查看操作 DRF序列化器 序列化与反序列化介绍 在日常开发,会从别的API获取数据或者自己写...:JSON 之前经常用json模式完成序列化与反序列化操作: 序列化应用场景示例:用ORM查询数据,采用JSON格式API返回数据。...DRF序列化器 DRF中有一个serializers模块专门负责数据序列化,DRF提供的方案更先进、更高级别的序列化方案。...是用户POST数据 if user_ser.is_valid(): #保存数据库 user_ser.save()...获取数据 -> 响应返回前端 反序列化(写数据):视图获取前端提交的数据 -> 数据传入序列化器 -> 调用序列化器的.is_valid方法进行效验 -> 调用序列化器的.save()方法保存数据 序列化器常用方法与属性

1.6K50

DjangoRestFramework,序列化组件、视图组件

Courses--- POST --->添加数据 -----> 返回添加的数据{ }     courses/1 ---PUT---> 更新pk=1的数据 ----->返回更新后的数据{ }     courses...的Response如果返回的是drf序列化之后的数据,那么客户端拿到的是一个有格式的数据,不再是一行显示了   看效果: ?...return Response(cs.data) #按照post添加数据的api规则,咱们要返回正确的数据 else: # 假如客户端发送过来的数据是这样的...6.validators 一个应用于传入字段的验证函数列表,如果验证失败,会引发验证错误,否则直接是返回,用于验证字段,: username = serializers.CharField...10.help_text 一个文本字串,可用作HTML表单字段或其他描述性元素字段的描述。

2.6K20
领券