首页
学习
活动
专区
圈层
工具
发布

2. DRF入门

查看操作 DRF序列化器 序列化与反序列化介绍 在日常开发中,会从别的API获取数据或者自己写API提供数据,数据格式一般都是采用JSON格式。...反序列化应用场景示例:从别的API获取数据,在Python里处理。...ORM从数据库获取数据查询集对象 -> 数据传入序列化器-> 序列化器将数据进行序列化 -> 调用序列化器的.data获取数据 -> 响应返回前端 反序列化(写数据):视图获取前端提交的数据 -> 数据传入序列化器...-> 调用序列化器的.is_valid方法进行效验 -> 调用序列化器的.save()方法保存数据 序列化器常用方法与属性: serializer.is_valid():调用序列化器验证是否通过...serializer.errors:获取反序列化器验证的错误信息 serializer.data:获取序列化器返回的数据 serializer.save():将验证通过的数据保存到数据库(ORM操作)

2.3K50

python教程

只对'POST'方法起作用。 request.data # 可以处理任意数据。对'POST','PUT'和'PATCH'方法起作用。...用这些标识符代替纯数字的HTTP状态码是很好的注意。 装饰API视图 REST框架提供两个装饰器,你可以用它们来写API视图。 1 @api_view装饰器用在基于视图的方法上。...相似地,虽然我们可以在响应对象中带数据,但允许REST框架渲染响应成正确的内容类型。...REST框架提供两种HTML渲染样式,一种是用模板渲染处理HTML,另一种是用预渲染HTML。第二种是我们想要用的方式。 在创建代码时,我们需要考虑的是,高亮视图在我们使用的普通视图中是不存在的。...我们使用的默认路由(DefaultRouter)类会自动为我们创建API根视图,所以我们就可以从我们的views模块删除api_root方法。

6.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    3. DRF进阶之DRF视图和常用功能

    DRF视图和常用功能 DRF视图 DRF视图类介绍 在DRF框架中提供了众多的通用视图基类与扩展类,以简化视图的编写。...a=123&b=456 查看get_params数据 post数据测试 查看request.data数据 get和post提交数据场景和特点 get 获取数据 提交数据有长度限制 传输是明文形式...ViewSet视图集不再实现get()、post()等方法,而是实现以下请求方法动作: list():获取所有数据 retrieve():获取单个数据 create():创建数据 update(...IsAdminUser:仅管理员用户 IsAuthenticatedOrReadOnly:登录的用户可以读写API,未登录用户只读 DRF Session 认证 参考文档: https://www.django-rest-framework.org...,我们可以通过添加django-fitlter扩展来增强支持 参考文档: https://www.django-rest-framework.org/api-guide/filtering/

    5.9K10

    【愚公系列】2022年04月 Python教学课程 65-DRF框架之请求和响应

    该对象的核心功能是属性,它类似于 ,但对于使用 Web API 更有用。 request.POST # 只处理表单数据。仅适用于"POST"方法。 request.data # 处理任意数据。...适用于"POST"、"PUT"和"PATCH"方法。 2.响应对象 REST 框架还引入了一个对象,该对象是一种获取未渲染内容并使用内容协商来确定要返回给客户端的正确内容类型。...REST 框架为每个状态代码(如模块中)提供了更明确的标识符。最好始终使用这些标识符,而不是使用数字标识符。...模式,但它为我们提供了一种简单,干净的方式来引用特定格式。...–debughttp 现在,通过访问 http://127.0.0.1:8000/snippets/,在Web浏览器中打开API。

    93330

    让 API 自动生成文档

    没有文档,对于新手或者工作交接,是一件非常麻烦的事情,也不利于程序的传承。 那么,有没有这样一种程序,根据 api 函数的规范注释,及 api 的功能自动生成 api 的文档呢?...比如我最近学习的 django rest framework 框架就可以自动生成 api 文档,有了这个功能,领导再也不用担心没有接口文档了。...django 框架获取参数有多种方式,如 get 请求中参数都会在 url 中传输,比如:http://xxx.com/api/?name=asdf&phone=13xxxx 这样。...这样,无论是 post ,还是 get ,我们可以编写统一的 参数获取函数,如下所示: from django.http import QueryDict from rest_framework.request...自定义的api 可以看到它获取到了 api 中的注释字符串。 ? 自定义的api 未发现参数框 我们发现自定义的 api 没有对应的参数可以填写,这真让人郁闷。

    2.1K20

    django-rest-framewor

    源码繁琐,多说无益,耐心细读官方文档: https://www.django-rest-framework.org/ 个人总结: REST是一种软件架构设计风格,不是标准,也不是具体的技术实现,只是提供了一组设计原则和约束条件...定义需要返回的字段(字段类型可以与model中的类型不一致,参数也可以调整),字段名称必须与model中的一致 在GET接口逻辑中,获取QuerySet 开始序列化:将QuerySet作业第一个参数传给序列化类...定义:需要为post新增url,因为根据规范,url定位资源,http请求方式定义用户行为 定义post方法:在视图类中定义post方法 开始序列化:通过我们上面定义的序列化类,创建一个序列化对象,传入参数...程序启动,开始初始化,获取配置信息,获取视图类并加载到内存中,获取url及视图类的对应关系 开始绑定视图类和url的对应关系,执行as_view()方法 as_view()方法被执行的时候传递了参数,为字典形式...retrieve,有一行instance = self.get_object(), 该方法在GenericAPIView中 至关重要的是拿到self.kwargs中的pk关键字,然后从queryset中拿到想要的数据

    2.2K10

    【愚公系列】2022年04月 Python教学课程 66-DRF框架之APIView

    文章目录 一、APIView ---- 一、APIView REST框架提供了一个类APIViewView,APIView类在以下方面与常规类不同,它是继承于View类。...传递给处理程序方法的请求将是REST框架的实例,而不是Django的实例。 RequestHttpRequest处理程序方法可以返回REST框架,而不是Django的。并在响应上设置正确的呈现器。...使用该类与使用常规类几乎相同,像往常一样,传入的请求被调度到适当的处理程序方法。此外,可以在控制 API 策略各个方面的类上设置许多属性。..."" # 1、获取保存的图书数据 data=request.data # 2、验证图书数据字段 ser = BookSerializer(...data = request.data # 2、验证图书数据字段 try: book = BookInfo.objects.get

    81830

    用django写接口(优化篇)

    Request 继承 HttpRequest,里面有个 request.data 属性,可以处理任意数据,例如 'POST','PUT','PATCH',其用法类似表单中的 request.POST (...参考 django 表单部分) Response 是一种 TemplateResponse 采用未呈现的内容,通过内容协商来确定正确的内容类型以返回给客户端,用法直接 return Response...省略 # 将该视图的请求方法写在注解中,表示该接口只接受列表内的请求方式 @api_view(['GET', 'POST']) def post_list(request): if request.method...在结束文章的最后,记录自己写的时候遇到的一个坑,当更新 ManyToMany 字段的时候,我们需要重新写 post 方法,直接传 id 是不能更新的,直接传 id 是不能更新的,直接传 id 是不能更新的...P[0-9]+)/&", views.PostDetailView.as_view(), name="api_post"), ] 修改完后我们就可以开心的更新 M2M 字段了,httpie 命令行如下

    2.5K20

    用django写接口(实战篇)

    接口分页效果 我们可以看到接口返回的信息还包含了前一页和后一页的 url 是不是很人性化 接口数据多条件筛选 目前我们的接口要查找特定的信息只能通过 id 来查找,这肯定是不够完善的,这部分将设置接口的多条件查询...首先我们需要安装过滤器的模块 pip install django-filter 然后我们需要将过滤器模块到 settings.py 中的 INSTALLED_APPS 进行注册才可以使用。...,rest_framework 的认证还包括许多,可以查看官网Authentication http://www.django-rest-framework.org/api-guide/authentication...当我们获取到 token 后保存到 SharePreference 中,每次访问都在请求头带上 token 值,就不需要每次通过账号密码登录才有权限。...token 后,我们可以通过如下操作,就可以达到相同的效果 http DELETE http://192.168.x.xxx:8080/api/post/10/ "Authorization: Token

    2.8K20

    DRF Swagger自定义的action文档参数实现

    #Swagger 这里不讲 DRF(django rest framework) 和 DRS(django rest swagger) 如何结合使用, 在以上两个项目文档中都有相关文档。...在安装完毕后, Swagger 可以自动通过我们锁定一的 serializer 来自动生成各个方法(GET, POST, PUT, DELETE)的coreapi.link(是一套 REST Docuemnt...但大多数我们往往需要根据特定的需求, 做一些自定义的接口, 比如使用的 api_view 装饰器定义的函数式视图, 或者使用DRF 中的 action 装饰器定义的自定义接口(在一些较早的DRF版本中为...forms.CharField(label="name", required=True) API VIEW Python @api_view(["GET", "POST"]) def register(...主要逻辑为, 当为函数式视图或者为view 的 action的 endpoint 则通过 yaml 格式的文档描述,其他则通过默认的行为获取接口 link。

    4K30

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

    (view) 我们发现返回值是csrf_exempt(view)局部不验证,在Django总结到了不懂可以看一下:CSRF 跨站请求伪造 快速使用DRF写出接口 序列化和反序列化 API接口开发,最核心最常见的一个过程就是序列化...) # 把新的request,放到了视图类对象中,可以通过self调用新的request和传入的request是一个,因为放到了self中 self.request =...rest_framework.request.Request常用属性和方法 这里的request和原来的Django使用request一样,只是多了一个request.data request.data...request.data可以获取,结果是字典 form-data格式和urlencode格式都可以获取并且是QueryDict对象 from rest_framework.response import...,这样只能获取到一个,需要使用getlist来获取,取出全部 官网的一些解释 原来的django中没有request.data,造一个!

    1.7K10

    DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

    post方法,其内部有个dispatch方法来进行分发,这又怎么玩呢,看源码啦,从哪里看呢?...REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”     REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过...URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态     所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性...他和put用哪个都可以,没有太大的区别,我们用put方式偏多 DELETE(DELETE):从服务器删除资源。       还有两个不常用的HTTP动词。 HEAD:获取资源的元数据。...return HttpResponse('POST')       而DRF通过自己的解析器,帮我们给request里面封装了一个request.data属性,获取请求体里面的数据,然后解析

    3.1K20
    领券